阅读量:2
以下是一个简单的C程序,用于计算两个日期之间的天数:
#include <stdio.h> // 计算闰年的函数 int leapYear(int year) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { return 1; } else { return 0; } } // 计算某年某月的天数 int daysInMonth(int year, int month) { int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if (leapYear(year) && month == 2) { return 29; } else { return days[month - 1]; } } // 计算从公元1年1月1日到某年某月某日的天数 int daysFromYear1(int year, int month, int day) { int days = 0; for (int y = 1; y < year; y++) { days += leapYear(y) ? 366 : 365; } for (int m = 1; m < month; m++) { days += daysInMonth(year, m); } days += day - 1; return days; } // 计算两个日期之间的天数 int daysBetweenDates(int year1, int month1, int day1, int year2, int month2, int day2) { int days1 = daysFromYear1(year1, month1, day1); int days2 = daysFromYear1(year2, month2, day2); return days2 - days1; } int main() { int year1, month1, day1, year2, month2, day2; printf("请输入第一个日期(年 月 日):"); scanf("%d %d %d", &year1, &month1, &day1); printf("请输入第二个日期(年 月 日):"); scanf("%d %d %d", &year2, &month2, &day2); int days = daysBetweenDates(year1, month1, day1, year2, month2, day2); printf("两个日期之间的天数为:%d\n", days); return 0; }
这个程序首先通过leapYear
函数计算是否为闰年,然后通过daysInMonth
函数计算某年某月的天数,接着通过daysFromYear1
函数计算从公元1年1月1日到某年某月某日的天数,最后通过daysBetweenDates
函数计算两个日期之间的天数。