输入一个年份和月份,输出这个月的天数。 输入格式: 输入年份year和月份month,年份和月份中间用一个空格隔开。 输出格式: 输入year年的month月对应的天数。 c语言
时间: 2024-11-13 15:39:41 浏览: 19
08输入年份和月份,输出天数.docx
在C语言中,你可以使用`mktime()`函数结合`cal()`库来获取给定年月的天数。首先,需要包含`<stdio.h>`和`<time.h>`头文件。下面是一个简单的示例:
```c
#include <stdio.h>
#include <time.h>
int main() {
int year, month;
// 输入年份和月份
printf("请输入年份和月份(格式:YYYY MM): ");
scanf("%d %d", &year, &month);
// 检查月份是否合法(范围1-12)
if (month < 1 || month > 12) {
printf("无效的月份。\n");
return 1;
}
// 使用mktime()创建时间结构,并计算天数
struct tm t = {0};
t.tm_year = year - 1900; // 转换为自1900年以来的年数
t.tm_mon = month - 1; // 时间结构的月份从0开始计数
time_t timestamp = mktime(&t);
// 如果timestamp不是-1,则说明日期有效,获取天数并输出
if (timestamp != -1) {
int days_in_month = day_of_month(timestamp);
printf("输入%4d年的%02d月对应的天数是%d。\n", year, month, days_in_month);
} else {
printf("无法计算该日期。\n");
}
return 0;
}
// 辅助函数,返回给定时间戳的月份天数
int day_of_month(time_t timestamp) {
return localtime(×tamp)->tm_mday;
}
```
注意:`mktime()`在某些老旧的系统上可能不可用,这时可以考虑使用`gmtime_r()`和`strftime()`代替。此外,为了简化代码,上述示例假设用户输入的年份和月份都是有效的。在实际应用中,你需要添加更多的错误检查。
阅读全文