在只使用stdio.h头文件的情况下,用C语言编写输入某年某月某日,判断这一天是这一年的第几天?
时间: 2023-05-16 07:05:37 浏览: 107
以下是代码示例:
#include <stdio.h>
int main() {
int year, month, day, days = 0;
printf("请输入年月日,格式为yyyy mm dd:");
scanf("%d %d %d", &year, &month, &day);
int daysInMonth[] = {31,28,31,30,31,30,31,31,30,31,30,31};
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
daysInMonth[1] = 29; // 闰年2月有29天
}
for (int i = 0; i < month - 1; i++) {
days += daysInMonth[i];
}
days += day;
printf("%d年%d月%d日是这一年的第%d天\n", year, month, day, days);
return 0;
}
输入示例:
请输入年月日,格式为yyyy mm dd:2022 3 15
输出示例:
2022年3月15日是这一年的第74天
相关问题
在只使用stdio.h头文件的情况下,用C语言中的if编写输入某年某月某日,判断这一天是这一年的第几天?
可以使用以下代码来实现:
#include <stdio.h>
int main() {
int year, month, day;
int days_in_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int day_count = 0;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
printf("请输入日期:");
scanf("%d", &day);
// 判断是否为闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
days_in_month[1] = 29;
}
// 计算天数
for (int i = 0; i < month - 1; i++) {
day_count += days_in_month[i];
}
day_count += day;
printf("%d年%d月%d日是这一年的第%d天\n", year, month, day, day_count);
return 0;
}
这个程序会先让用户输入年份、月份和日期,然后判断是否为闰年,接着根据每个月的天数计算出这一天是这一年的第几天,最后输出结果。
用C语言输入某年某月某日,判断这一天是这一年的第几天?
可以使用time.h头文件中的函数来实现。具体代码如下:
#include <stdio.h>
#include <time.h>
int main()
{
int year, month, day;
printf("请输入年月日,格式为yyyy-mm-dd:");
scanf("%d-%d-%d", &year, &month, &day);
struct tm t = {0};
t.tm_year = year - 1900;
t.tm_mon = month - 1;
t.tm_mday = day;
time_t time = mktime(&t);
int day_of_year = localtime(&time)->tm_yday + 1;
printf("%d年%d月%d日是这一年的第%d天\n", year, month, day, day_of_year);
return 0;
}
输入年月日后,程序会将其转换为time_t类型的时间戳,然后使用localtime函数将其转换为struct tm类型的时间结构体,最后获取这一天是这一年的第几天并输出。
相关推荐
















