1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #include <stdio.h>
- // 函数:判断是否为闰年
- int isLeapYear(int year) {
- if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
- return 1; // 是闰年
- else
- return 0; // 不是闰年
- }
- // 函数:计算给定日期是这一年的第几天
- int dayOfYear(int year, int month, int day) {
- int daysInMonth[] = {31, 28, 31, 30, 31, 30,
- 31, 31, 30, 31, 30, 31};
- int totalDays = 0;
-
- // 加上之前月份的天数
- int m;
- for (m = 1; m < month; m++) {
- totalDays += daysInMonth[m - 1];
- // 对于二月且是闰年,需额外加一天
- if (m == 2 && isLeapYear(year))
- totalDays++;
- }
-
- // 加上当前月份的天数
- totalDays += day;
-
- return totalDays;
- }
- int main() {
- int year, month, day;
-
- scanf("%d %d %d", &year, &month, &day);
-
- // 计算该日期是这一年的第几天
- int result = dayOfYear(year, month, day);
-
- // 输出结果
- printf("%d\n", result);
-
- return 0;
- }
|