【每天例题】计算日期到天数转换
计算日期到天数转换
题目
题目要求
保证年份为4位数且日期合法。
思路分析
判断闰年方法:
1.年份可以被4整除,不能被100整除。
2.年份可以被400整除。
方法一(for if配套)
1.使用for循环不断将month前month天数相加,等到了month则直接加day。
2.在二月时区分闰年。闰年二月天数29,非闰年二月天数28。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include<stdio.h> int main() { int year,month,day,i,allday=0; scanf( "%d %d %d" ,&year,&month,&day); for (i=1;i<month;i++) { if ((i==1)||(i==3)||(i==5)||(i==7)||(i==8)||(i==10)||(i==12)) { allday+=31; } else if ((i==4)||(i==6)||(i==9)||(i==11)) { allday+=30; } else if (i==2) { if ((year%4==0&&year%100!=0)||(year%400==0)) { allday+=29; } else { allday+=28; } } } allday+=day; printf( "%d" ,allday); return 0; } |
方法二(switch语句)
1格式为:
switch(月份)
{
case(月份)
.
.
.
}
代码
#include<stdio.h> int main() { int year,month,day; int allday=0; scanf("%d %d %d",&year,&month,&day); switch(month) { case 12: allday+=30;//11月的天数 case 11: allday+=31;//10月的天数 case 10: allday+=30;//9月的天数 case 9: allday+=31;//8月的天数 case 8: allday+=31;//7月的天数 case 7: allday+=30;//6月的天数 case 6: allday+=31;//5月的天数 case 5: allday+=30;//4月的天数 case 4: allday+=31;//3月的天数 case 3://2月的天数 if((year%4==0&&year%100!=0)||(year%400==0)) { allday+=29; } else { allday+=28; } case 2: allday+=31;//1月的天数 case 1: break; } allday+=day; printf("%d",allday); return 0; }
运行结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix