C语言代码:将2020年计数转换为年、月、日、星期
#include <stdio.h>
struct Date { int year; int month; int day; int weekday; };
int getWeekday(int year, int month, int day) { if (month < 3) { month += 12; year--; } int century = year / 100; year %= 100; int weekday = (year + year / 4 + century / 4 - 2 * century + 26 * (month + 1) / 10 + day - 1) % 7; if (weekday < 0) { weekday += 7; } return weekday; }
struct Date convertToDateTime(int count) { struct Date dateTime; dateTime.year = 2020; int dayCount = 0; int month; for (month = 1; month <= 12; month++) { int daysInMonth; if (month == 2) { daysInMonth = 29; // Leap year } else if (month == 4 || month == 6 || month == 9 || month == 11) { daysInMonth = 30; } else { daysInMonth = 31; } if (dayCount + daysInMonth >= count) { dateTime.month = month; dateTime.day = count - dayCount; break; } dayCount += daysInMonth; } dateTime.weekday = getWeekday(dateTime.year, dateTime.month, dateTime.day); return dateTime; }
int main() { int count; printf('请输入一个1~366的值:'); scanf('%d', &count); if (count < 1 || count > 366) { printf('输入的值无效。\n'); return 0; } struct Date dateTime = convertToDateTime(count); printf('转换结果:\n'); printf('年:%d\n', dateTime.year); printf('月:%d\n', dateTime.month); printf('日:%d\n', dateTime.day); printf('星期:%d\n', dateTime.weekday); return 0; }
原文地址: https://www.cveoy.top/t/topic/pbIz 著作权归作者所有。请勿转载和采集!