日期问题模版
作者:
XMLife
,
2024-03-14 14:24:47
,
所有人可见
,
阅读 30
int months[13] = {
0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
};
//判断某一年是否是闰年的函数
int is_leap(int year)
{
if(year % 400 == 0 || (year % 4 == 0 && year % 100)) return 1;
return 0;
}
//求某月有多少天的函数
int get_days(int year, int month)
{
if(month == 2) return months[month] + is_leap(year); //如果是2月的话返回天数和是否是闰年,如果是闰年2月份+1天
return months[month]; //不是2月份则直接返回天数即可
}。
bool check(int date) //判断日期是否合法
{
int year = date / 10000;
int month = date % 10000 / 100;
int day = date % 100;
// cout << year << " " << mouth << " " << day << endl;
if(day <= 0 || day >= 32) return false;
if(month <= 0 || month >=13) return false;
if(month != 2 && day > arr[month]) return false;
if(month == 2)
{
bool leap = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
if (day > 28 + leap) return false;
}
return true;
}