输入一个日期,输出该日期是本年的第几天c语言编写程序
时间: 2024-10-05 08:04:17 浏览: 95
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
5星 · 资源好评率100%
在C语言中,可以使用标准库函数`mktime()`和`strftime()`来计算给定日期是一年中的第几天。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
char date[100];
printf("请输入日期 (格式: yyyy-mm-dd): ");
scanf("%s", date);
struct tm input_time;
if (sscanf(date, "%d-%d-%d", &input_time.tm_year, &input_time.tm_mon, &input_time.tm_mday) != 3) {
printf("无效的日期格式.\n");
return 1;
}
// 减去1900年,因为tm_year从0开始计数
input_time.tm_year -= 1900;
// 将输入的时间转换成时间戳并获取天数
time_t t = mktime(&input_time);
if (t == -1) {
printf("无法解析日期.\n");
return 1;
}
int day_of_year = t + (input_time.tm_hour * 3600) + (input_time.tm_min * 60) + input_time.tm_sec; // 时间戳包含秒级别,这里忽略
printf("输入日期是一年中的第 %d 天.\n", day_of_year);
return 0;
}
```
在这个程序中,用户会被提示输入日期,然后通过`mktime()`将输入转换为结构体`tm`,接着计算出对应的天数。注意,这个程序假设月份是从0开始的,所以需要减1以对应实际的月份。
阅读全文