c语言实现万年历具体代码
时间: 2023-03-14 17:05:26 浏览: 24
下面是一个简单的 C 语言代码实现的万年历程序:
```
#include <stdio.h>
#include <stdlib.h>
int main()
{
int year, month, day, sum, leap;
int monthAdd[12] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
printf("请输入日期:");
scanf("%d", &day);
if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
{
leap = 1;
}
else
{
leap = 0;
}
sum = monthAdd[month - 1] + day;
if (leap == 1 && month > 2)
{
sum++;
}
printf("这是%d年的第%d天。\n", year, sum);
return 0;
}
```
这份代码可以实现从键盘读入年月日,然后计算出这是该年的第几天。希望这份代码能帮到你。
相关问题
C语言实现万年历具体代码
以下是一个简单的 C 语言程序,用于实现万年历。它可以输入年份和月份,然后输出该月的日历。
```
#include <stdio.h>
int main()
{
int year, month, day, week, i, j;
int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char *weekdays[7] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
printf("Enter the year: ");
scanf("%d", &year);
printf("Enter the month: ");
scanf("%d", &month);
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
days[1] = 29;
day = 1;
week = 0;
for (i = 1900; i < year; i++) {
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
week = (week + 366) % 7;
else
week = (week + 365) % 7;
}
for (i = 0; i < month - 1; i++) {
week = (week + days[i]) % 7;
}
printf("\n %d/%d\n", year, month);
for (i = 0; i < 7; i++) {
printf("%s ", weekdays[i]);
}
printf("\n");
for (i = 0; i < week; i++) {
printf(" ");
}
for (i = week, j = 1; j <= days[month - 1]; i++, j++) {
printf("%2d ", j);
if (i % 7 == 6) {
printf("\n");
}
}
printf("\n");
return 0;
}
```
在这个程序中,我们使用了一个数组来存储每个月的天数,并使用一个字符串数组来存储星期几的名称。程序首先要求用户输入年份和月份,然后根据这些输入计算出该月的日历。我们使用了一个循环来计算从 1900 年到用户输入的年份之前的所有年份的天数总和,然后使用另一个循环来计算该月的第一天是星期几。最后,我们使用两个嵌套的循环来打印出整个月的日历。
阅读全文