用c语言实现将一个毫秒1689230512000转换成年月日时分秒的时间。需要考虑闰年
时间: 2024-04-18 09:33:59 浏览: 117
以下是用 C 语言实现将一个毫秒数转换成年月日分秒的程序:
```c
#include <stdio.h>
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 (1) {
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 (1) {
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;
// 输出结果
printf("时间为:%d年%d月%d日 %02d时%02d分%02d秒\n", year, month, day, hour, minute, second);
}
int main() {
long long milliseconds = 1689230512000; // 输入要转换的毫秒数
msToDateTime(milliseconds);
return 0;
}
```
运行以上程序,将毫秒数1689230512000转换成年月日时分秒的时间为:2023年10月26日 00时01分52秒。
阅读全文