若已知1800年1月1日为星期3,则对于一个给定的年份和月份,输出这个月的最后一天是星期几。

根据已知1800年1月1日为星期3,程序接收年份和月份作为输入,输出该月份最后一天是星期几。例如,输入2033年12月,输出为6,代表星期六。
摘要由CSDN通过智能技术生成

题目内容:
若已知1800年1月1日为星期3,则对于一个给定的年份和月份,输出这个月的最后一天是星期几。

输入格式:
两行整数,分别代表年份和月份

输出格式:
星期数,0代表星期日

输入样例:
2033
12

输出样例:
6
时间限制:500ms内存限制:32000kb

def judg_year(year):
    if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
         return True
    
以下是用C编写的万历系统的代码: ``` #include <stdio.h> int main() { int year, month, day, week, days_in_month, i, j; printf("请输入年份:"); scanf("%d", &year); printf("请输入月份:"); scanf("%d", &month); // 计算这一的第一天星期几 week = (year - 1 + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400 + 1) % 7; // 计算这个有多少天 if (month == 2) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { days_in_month = 29; } else { days_in_month = 28; } } else if (month == 4 || month == 6 || month == 9 || month == 11) { days_in_month = 30; } else { days_in_month = 31; } // 输出日历或历 if (month == 0) { printf(" %d\n", year); for (i = 1; i <= 12; i++) { printf(" %d\n", i); printf("日 一 二 三 四 五 六\n"); // 输出一天之前的空格 for (j = 0; j < week; j++) { printf(" "); } // 输出这个的日期 for (j = 1; j <= days_in_month; j++) { printf("%2d ", j); week++; if (week == 7) { printf("\n"); week = 0; } } // 输出最后一天之后的空格 for (j = week; j < 7; j++) { printf(" "); } printf("\n"); } } else { printf(" %d%d\n", year, month); printf("日 一 二 三 四 五 六\n"); // 输出一天之前的空格 for (j = 0; j < week; j++) { printf(" "); } // 输出这个的日期 for (j = 1; j <= days_in_month; j++) { printf("%2d ", j); week++; if (week == 7) { printf("\n"); week = 0; } } // 输出最后一天之后的空格 for (j = week; j < 7; j++) { printf(" "); } printf("\n"); } return 0; } ``` 如果输入年份,则会输出这一的日历;如果输入年份月份,则会输出这个历。已知198011日为星期二,程序会自动计算出这一的第一天星期几,并根据这个信息输出日历或历。 请注意,这个程序只能处理公历,不能处理农历。如果需要处理农历,需要使用其它算法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值