多数的关于年月日的具体到天数的计算,使用switch计算时,喜欢以某个月写入具体的天数加上break来直接写出月的天数和加上具体的当月天数进行计算。
今天老师分享了另一种方式,以累加的形式,觉得很有趣,进而分享一下。
#include <stdio.h>
int main(void)
{
int year,month,day; //定义具体某天的年月日;
int days=0; //求和的天数;
int flag=0; //定义闰年的多出来的一天
printf("请输入具体的年月日\n");
scanf("%d-%d-%d",&year,&month,&day);
if(year%4 == 0 && year%100 != 0 || year%400 == 0)
{
flag = 1;
}
switch(month)
{
case 12 :days += 30;
case 11 :days += 31;
case 10 :days += 30;
case 9 :days += 31;
case 8 :days += 31;
case 7 :days += 30;
case 6 :days += 31;
case 5 :days += 30;
case 4 :days += 31;
case 3 :days += 28+flag;
case 2 :days += 31;
case 1 :days += day;
}
printf("这天一共%d天\n",days);
}
用倒叙的形式,进行加法算天数,不用自己二次计算具体数值了,巧妙而方便。