帮我用c语言写一个代码,可以通过任意年任意月份得到天数
时间: 2024-09-27 22:07:14 浏览: 39
当然可以,以下是一个简单的C语言函数,它使用了一个数组来存储每个月的天数,并通过用户输入的年份和月份计算出该月的总天数。请注意,这个函数假设闰年的规则(能被4整除但不能被100整除,除非同时也能被400整除),以便正确处理二月的天数。
```c
#include <stdio.h>
int days_in_month(int year, int month) {
static const int months[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 不考虑闰年
if (month < 1 || month > 12) {
printf("Invalid month number. Please enter a number between 1 and 12.\n");
return -1;
}
// 考虑闰年
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
if (month == 2)
return 29;
} else {
months[1] = 28; // 保持非闰年的2月有28天
}
return months[month - 1]; // 返回对应月份的天数
}
int main() {
int year, month;
printf("Enter the year: ");
scanf("%d", &year);
printf("Enter the month: ");
scanf("%d", &month);
int num_days = days_in_month(year, month);
if (num_days >= 0)
printf("Number of days in the given month is: %d\n", num_days);
return 0;
}
```
阅读全文