C语言做一个开机打印出系统标准时间键盘输入月份能够返回打印天数打印格式左对齐如:2024年10月29日14:30:31 星期二;输入12回车显示12月一共31天,在输入2回车后显示2月一共29天
时间: 2024-11-05 22:34:55 浏览: 9
在C语言中实现这样的功能,你可以使用`<stdio.h>`库来进行标准输入输出,并结合`<time.h>`库获取当前日期。以下是一个简单的示例程序,它会提示用户输入月份并基于此计算天数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int days_in_month(int month) {
switch (month) {
case 1: // January
case 3: // March
case 5: // May
case 7: // July
case 8: // August
case 10: // October
case 12: // December
return 31;
case 2: // February
if (is_leap_year()) {
return 29;
} else {
return 28;
}
default: // Other months
printf("Invalid month entered.\n");
return -1; // Return error for unknown month
}
}
bool is_leap_year() {
time_t now = time(0);
struct tm *ltm = localtime(&now);
return ltm->tm_year % 4 == 0 && (ltm->tm_year % 100 != 0 || ltm->tm_year % 400 == 0);
}
void print_current_date() {
time_t current_time = time(0);
struct tm *time_info = localtime(¤t_time);
char buffer[30];
strftime(buffer, sizeof(buffer), "%Y年%m月%d日%T 星期%a;", time_info);
printf("%s\n", buffer);
}
int main() {
int month;
printf("请输入月份(1-12): ");
scanf("%d", &month);
// 检查输入是否有效
if (month >= 1 && month <= 12) {
print_current_date();
int days = days_in_month(month);
if (days > 0) {
printf("该月一共有 %d 天。\n", days);
} else {
printf("无法确定月份天数,请检查输入或查看常见月份天数。\n");
}
} else {
printf("无效的月份输入。\n");
}
return 0;
}
```
这个程序首先定义了一个函数`days_in_month`来判断给定月份的天数,包括闰年的特殊情况。然后通过`print_current_date`函数获取当前日期并按照指定格式打印。`main`函数中用户输入月份,程序处理并打印相关信息。
阅读全文