一年中的第几天

来源:互联网 发布:别人羡慕的生活知乎 编辑:程序博客网 时间:2024/06/09 17:00
#include <stdio.h>#include <stdlib.h>//平年2月28天,闰年2月29天int day(int year,int month,int date){    int day=0;    int feb=28;    //判断是否为闰年    if(year%4==0&&year%100!=0||year%400==0)    {        feb=29;    }    switch(month)    {    case 12:        day+=30;    case 11:        day+=31;    case 10:        day+=30;    case 9:        day+=31;    case 8:        day+=31;    case 7:        day+=30;    case 6:        day+=31;    case 5:        day+=30;    case 4:        day+=31;    case 3:        day+=feb;    case 2:        day+=31;    case 1:        day+=0;    default:        break;    }    day+=date;    return day;}int main(){    printf("2014,3,3是一年中的第%d天\n",day(2014,3,3));    return 0;}

其实以前case我也没有这样用,不加break可以累加。

另外一种写法不用case

#include <stdio.h>#include <stdlib.h>//平年2月28天,闰年2月29天int day(int year,int month,int date){    int day=0;    int i;    int months[]={31,28,31,30,31,30,31,31,30,31,30,31};    if(year%4==0&&year%100!=0||year%400==0)    {        months[1]=29;    }    for(i=1;i<month;++i)    {        day+=months[i-1];    }    day+=date;    return day;}int main(){    printf("2014,3,3是一年中的第%d天\n",day(2014,3,3));    return 0;}


0 0
原创粉丝点击