解决的问题:当用户输入要查找的年份和月份时,可以显示出当年当月的日历。
程序代码:
#include <stdio.h> #include <stdlib.h> int main() { int year = 0, month = 0, sum = 0, weekday = 0, month_count = 0; printf("请输入要查找的年份 -> "); scanf_s("%d", &year); printf("请输入要查找的月份 -> "); scanf_s("%d", &month); for (int i = 1990; i < year; i++) { if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)) sum += 366; else sum += 365; } for (int i = 1; i < month; i++) { if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) { sum += 31; } else if (i == 4 || i == 6 || i == 9 || i == 11) { sum += 30; } else if (i == 2 && (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { sum += 29; } else sum += 28; } sum++; weekday = sum % 7; if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) month_count = 31; else if (month == 4 || month == 6 || month == 9 || month == 11) month_count = 30; else if (month == 2 && (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) month_count = 29; else month_count = 28; printf("\n\t \t %d月%d月\n\n", year, month); printf("日\t一\t二\t三\t四\t五\t六\n"); for (int i = 0; i < weekday; i++) printf("\t"); for (int i = 1; i <= month_count; i++) { if (sum % 7 == 6) printf("%d\n", i); else printf("%d\t", i); sum++; } system("pause"); return 0; }
比如:当输入2015年10月时,屏幕会显示:
原文:http://10740026.blog.51cto.com/10730026/1701742