返回一个月中最大的天数(适用于2000年到2099年之间)

  • 计算一个月中的最大天数

采用查表法来实现,润年计算方法只计算被4整除,这样至少适应于2000年~2099年之间,对有生之年也够用

typedef struct 
{
	uint8_t second;  //秒
	uint8_t minute;  //分
	uint8_t hour;    //时
	uint8_t day;    //日
	uint8_t month;   //月
	uint8_t week;    //星期 1-7
	uint8_t year;    //年
        uint8_t timeZone; //时区
}REAL_TIME_T;

//-------------月份对应最大天数--------------------------
static const uint8_t  MONTH_DAYNO[]={
	0,    // dummy
	31,   // 1月
	28,   // 2月
	31,   // 3月
	30,   // 4月
	31,   // 5月
	30,   // 6
	31,   // 7
	31,   // 8
	30,   // 9
	31,   // 10
	30,   // 11
	31    // 12
};

/**--------------------------------------------------------------
* @brief 计算一个月中的最大天数
* @param REAL_TIME_T *time 指向时间结构体对象
* @returnval uint8_t 返回一个月中最大的天数
*----------------------------------------------------------------*/
uint8_t getMaxDays(REAL_TIME_T *time)
{
     uint8_t days = MONTH_DAYNO[time->month];
     if(((time->year & 0x03)==0) && (time->month == 2)) //2月润年为29天
     {
	days++;
     }
     return days;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风雨依依

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值