C语言实现日期转换:将2020年计数转换为年、月、日、星期
#include <stdio.h>
struct Date { int year; int month; int day; int weekday; };
int isLeapYear(int year) { if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { return 1; } else { return 0; } }
void convertToDate(int count, struct Date *date) { int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int month = 1; while (count > daysInMonth[month - 1]) { if (month == 2 && isLeapYear(date->year)) { count -= 29; } else { count -= daysInMonth[month - 1]; } month++; } date->month = month; date->day = count;
// Calculate the weekday
int startWeekday = 3; // January 1, 2020 is Wednesday
date->weekday = (startWeekday + count - 1) % 7;
}
int main() { int count; struct Date date;
printf("Please enter a number between 1 and 366: ");
scanf("%d", &count);
if (count < 1 || count > 366) {
printf("Invalid input\n");
return 0;
}
date.year = 2020;
convertToDate(count, &date);
printf("%d年%d月%d日 星期", date.year, date.month, date.day);
switch (date.weekday) {
case 0:
printf("日\n");
break;
case 1:
printf("一\n");
break;
case 2:
printf("二\n");
break;
case 3:
printf("三\n");
break;
case 4:
printf("四\n");
break;
case 5:
printf("五\n");
break;
case 6:
printf("六\n");
break;
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/pbIg 著作权归作者所有。请勿转载和采集!