计算闰年, 根据年份和月份返回天数(3种方法)

来源:互联网 发布:mathcad怎么求解矩阵 编辑:程序博客网 时间:2024/05/22 04:42

翻阅笔记系列
看以前的笔记,感觉就是 我以前还了解过这个。。。


计算闰年

int year;scanf("%d",&year);bool bFlag = year%(year%100?4:400)?false:trueiftrue == bFlag){     //是闰年}else{     //非闰年}

根据年份和月份返回天数

方法1:推荐

//得到每月的天数:#define MONTH 12int GetDaysCount(const int year, const int month){    char days[MONTH] = {31,28,31,30,31,30,31,31,30,31,30,31};    if (month == 2)    {        bool bFlag = year%(year%100?4:400)?false:true;        if ( bFlag == 1)  //29        {            days[1] = 29;        }    }    return days[month-1];}

方法2:

/////////////得到每月的天数////////////////////    int  a ;    int year = 2016;    scanf("%d",&a);    //如果是2月的话判断闰年    if (a ==  2 )     {        bool bfalg = year%(year%100?4:400)?false:true;        if (bfalg)        {            printf("29\n");        }        else        {            printf("28\n");        }    }    else    {        bool bfalg = (a%2)?(a<8):(a>=8);        if (bfalg)        {            printf("31\n");        }                                                                                      else        {            printf("30\n");        }    }

方法3: 推荐

//方法3:更易理解    int days;    switch (a)    {    case 2:        {            bool bfalg = year%(year%100?4:400)?false:true;            if (bfalg)            {                days = 29;            }            else            {                days = 28;            }            break;        }    case 4:    case 6:    case 9:    case 11:        days = 30;        break;    default:     //1,3,5,7,8,10,12        days = 31;        break;    }/////////////////////////////////
阅读全文
1 0
原创粉丝点击