📄 date.h
字号:
typedef struct date
{
int year; //0-3000
int month; //1-12
int day; //0-31
}date;
int DayOfMonth(Y, M)
{
switch(M)
{
case 1: return 31; break;
case 2: return 28+(Y%4==0&&(Y%400==0||Y%100!=0));break;
case 3: return 31; break;
case 4: return 30; break;
case 5: return 31; break;
case 6: return 30; break;
case 7: return 31; break;
case 8: return 31; break;
case 9: return 30; break;
case 10: return 31; break;
case 11: return 30; break;
case 12: return 31; break;
}
return 0;
}
void DataPlus(date D1, date *D2)
{
if(D1.day != DayOfMonth(D1.year, D1.month))
{
D2->day = D1.day + 1;
}
else if(D1.month < 12)
{
D2->month = D1.month + 1;
D2->day = 1;
}
else
{
D2->year = D1.year + 1;
D2->month = 1;
D2->day = 1;
}
}
int DiffDate(date D1, date D2)
{
int dateCount=0;
int n, m, temp;
if (D2.year < D1.year)//判断年数相差
{
temp = D2.year;
D2.year = D1.year;
D1.year = temp;
temp = D2.month;
D2.month = D1.month;
D1.month = temp;
temp = D2.day;
D2.day = D1.day;
D1.day = temp;
}//if
if (D2.year == D1.year)
{
if (D2.month < D1.month)
{
temp = D2.month;
D2.month = D1.month;
D1.month = temp;
temp = D2.day;
D2.day = D1.day;
D1.day = temp;
}
if(D2.month == D1.month)
{
if(D2.day < D1.day)
{
temp = D2.day;
D2.day = D1.day;
D1.day = temp;
}
dateCount = D2.day - D1.day;
return dateCount;
}
if( D2.month > D1.month)
{
dateCount = dateCount + D2.day;
for (n=D2.month-1; n>D1.month-1; n--)
{
dateCount = dateCount + DayOfMonth(D2.year, n);
}//循环至D2的月份比D1小,这样在加上D1的日子就为总天数
dateCount = dateCount - D1.day;
return dateCount;
}
}//两天在同一年的情况
if(D2.year>D1.year)
{
dateCount = dateCount+D2.day;
for(n=D2.month-1; n>0; n--)
{
dateCount = dateCount + DayOfMonth(D2.year, n);
}
for(m=D2.year-1; m>D1.year; m--)
{
dateCount = dateCount + 365 +
D2.year%4==0&&(D2.year%400==0||D2.year%100!=0);
}
for(n=12; n>D1.month-1; n--)
{
dateCount = dateCount + DayOfMonth(D1.year, n);
}
dateCount = dateCount - D1.day;
return dateCount;
}//D2年大于D1的年份
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -