只要输入年份就能打印出相应的日历
#ifndef MAIN_H
#define MAIN_H
#include "stdio.h"
#include "math.h"
#include "stdlib.h"
int monthday(int, int);
int isleapyear(int);
#endif
int main()
{
int year, month, days, weekday;
int i, d;
while (1)
{
printf("please input the year:\n");
scanf_s("%d", &year);
days = year - 1 + (year - 1) / 400 + (year - 1) / 4 - (year - 1) / 100;
for (month = 1; month <= 12; month++)
{
printf("\t\t****%d年--%d月****\n", year, month);
printf("sun\tmon\ttues\twed\tthur\tfir\tsat\t\n");
i = 1; d = 1;
weekday = (days + 1) % 7;
while (i <= weekday)
{
printf("\t");
i++;
}
while (d <= monthday(month, year))
{
weekday = (days + 1) % 7;
if (weekday == 6)
printf("%d\n", d);
else
printf("%d\t", d);
if (d == monthday(month, year))
printf("\n");
d++;
days++;
}
}
}
}
int monthday(int month, int year)
{
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31; break;
case 4:
case 6:
case 9:
case 11:
return 30; break;
case 2:
if (isleapyear(year))
{
return 29;
break;
}
else
{
return 28;
break;
}
}
}
int isleapyear(int year)
{
if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
return 1;
else
return 0;
}
这是运行结果(2018年的日历)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)