用C语言程序写输入2014年的任意一个月,输出天数
时间: 2024-11-12 07:33:38 浏览: 8
在C语言中,我们可以使用`<time.h>`库中的`mktime()`和`strftime()`函数来获取给定年份和月份的天数。以下是一个简单的程序示例,它会提示用户输入年份和月份,然后计算并输出该月的天数:
```c
#include <stdio.h>
#include <time.h>
int main() {
int year, month, days_in_month;
// 获取用户输入
printf("请输入年份: ");
scanf("%d", &year);
printf("请输入月份(范围1-12): ");
scanf("%d", &month);
// 检查月份是否合法
if(month < 1 || month > 12) {
printf("错误:月份必须介于1和12之间。\n");
return 1;
}
// 使用mktime转换日期为struct tm结构
struct tm t = { 0 };
t.tm_year = year - 1900; // 时间系统从1900年开始
t.tm_mon = month - 1; // C语言中月份是从0开始计数的
t.tm_mday = 1; // 初始日为第一天
time_t timestamp = mktime(&t); // 将tm结构转化为时间戳
if (timestamp == (time_t)-1) { // 如果转换失败,说明月份无效
printf("错误:输入的月份天数无效。\n");
return 1;
}
// 使用strftime获取最后一天的日期,如果超出范围则说明闰年
char date_str[32];
strftime(date_str, sizeof(date_str), "%m/%d", &t);
days_in_month = atoi(date_str); // 转换字符串为整数
printf("年份 %d 的 %d 月有 %d 天.\n", year, month, days_in_month);
return 0;
}
```
这个程序假设用户输入的月份天数不会超过实际的天数,如果是闰年的二月,它将给出28天(非闰年)或29天(闰年)的结果。
阅读全文