用c++语言实现将一个毫秒1689230512000转换成年月日时分秒的时间。需要考虑闰年
时间: 2024-04-14 10:26:47 浏览: 107
以下是使用 C++ 语言实现将一个毫秒数转换成年月日时分秒的程序:
```cpp
#include <iostream>
void msToDateTime(long long milliseconds) {
// 每个月的天数(非闰年)
int daysInMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// 获取当前时间戳的秒数
long long seconds = milliseconds / 1000;
// 计算年份
int year = 1970;
while (true) {
int daysInYear = 365;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
daysInYear = 366; // 当年是闰年
}
if (seconds < daysInYear * 24 * 60 * 60) {
break;
}
seconds -= daysInYear * 24 * 60 * 60;
year++;
}
// 计算月份和日期
int month = 1;
while (true) {
int daysInMonth = daysInMonth[month - 1];
if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)) {
daysInMonth = 29; // 当月是闰年的二月
}
if (seconds < daysInMonth * 24 * 60 * 60) {
break;
}
seconds -= daysInMonth * 24 * 60 * 60;
month++;
}
int day = seconds / (24 * 60 * 60) + 1;
seconds = seconds % (24 * 60 * 60);
// 计算小时、分钟和秒钟
int hour = seconds / (60 * 60);
seconds = seconds % (60 * 60);
int minute = seconds / 60;
int second = seconds % 60;
// 输出结果
std::cout << "时间为:" << year << "年" << month << "月" << day << "日 " << hour << "时" << minute << "分" << second << "秒" << std::endl;
}
int main() {
long long milliseconds = 1689230512000; // 输入要转换的毫秒数
msToDateTime(milliseconds);
return 0;
}
```
运行以上程序,将毫秒数1689230512000转换成年月日时分秒的时间为:2023年10月26日 0时1分52秒。
阅读全文