您的位置:首页 > 其它

Some functions and codes about date

2010-11-04 17:25 411 查看
#include <stdio.h>

typedef struct _DATES
{
int year;
int month;
int day;
}DATES;

//获取某月的天数
int GetDaysOfMonth(int year, int month)
{
bool judge = false;
int daysOfMonth[12] = {31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

if ((year%4 == 0) && (year%100 != 0) || (year%400 == 0))
{
judge = true;
}
if (month == 2)
{
return judge ? 29:28;
}
else
{
return daysOfMonth[month - 1];
}

}

//获取指定的两个月份之间的天数
int GetDaysBetweenMonth(DATES start, DATES end)
{
int daysStart, daysEnd;
int subMonth;
int sum = 0;

subMonth = end.month - start.month;
daysStart = GetDaysOfMonth(start.year, start.month);
if (subMonth == 0)
{
return (end.day - start.day);
}
if (subMonth < 0)
{
return (daysStart - start.day);
}
else
{
daysEnd = end.day;
sum = daysStart - start.day + daysEnd;
for (int m=1; m<=subMonth-1; m++)
{
sum += GetDaysOfMonth(start.year, start.month + m);
}
return sum;
}
}

void main()
{
DATES dateStart, dateEnd;
int days;

dateStart.year = 2010;
dateEnd.year = 2010;
printf("Please input the month,day:/n");
scanf("%d,%d", &dateStart.month, &dateStart.day);
printf("Input the end date:/n");
scanf("%d,%d",&dateEnd.month, &dateEnd.day);
days = GetDaysBetweenMonth(dateStart, dateEnd);
printf("The days is %d/n", days);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: