c语言万年历对节假日的显示,C语言万年历

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

int IsLeapYear(int);

main()

{

int i,day,year,temp,temp_i;

long int Year_days=0;

int Year_Start=1;

int Per_Year_Days;

int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31,29};

printf("We know that 2000.01.01 is saturday!\n");

printf("Please enter the year and month:");

while(1)

{

scanf("%d %d",&year,&temp);

if(getchar()=='q')

exit(0);

while(Year_Start < year)

{

if(IsLeapYear(Year_Start))

Per_Year_Days=366;

else

Per_Year_Days=365;

Year_days=Year_days + Per_Year_Days;

Year_Start++;

}

{

switch(temp)

{

case 1:

printf("January (%d) \n",year);

break;

case 2:

printf("February (%d) \n",year);

break;

case 3:

printf("March (%d) \n",year);

break;

case 4:

printf("April (%d) \n",year);

break;

case 5:

printf("May (%d) \n",year);

break;

case 6:

printf("June (%d) \n",year);

break;

case 7:

printf("July (%d) \n",year);

break;

case 8:

printf("Auguest (%d) \n",year);

break;

case 9:

printf("September (%d) \n",year);

break;

case 10:

printf("October (%d) \n",year);

break;

case 11:

printf("Novermber (%d) \n",year);

break;

case 12:

printf("December (%d) \n",year);

break;

default:printf("error\n");

}

i=Year_days%7;

printf("Mon Tue Wed Thu Fri Sat Sun\n");

if(i!=0)

for(temp_i=0;temp_i

printf(" ");

day=1;

if(IsLeapYear(year)&&temp==2)

while(day<=month_day[12])

{

if(day>1)

if(Year_days%7==0)

printf("\n");

if(day>=10)

printf("%d ",day);

else

printf("%d ",day);

Year_days++;

day++;

}

else

while(day<=month_day[temp-1])

{

if(day>1)

if(Year_days%7==0)

printf("\n");

if(day>=10)

printf("%d ",day);

else

printf("%d ",day);

Year_days++;

day++;

}

printf("\n");

}

}

}

int IsLeapYear(int year)

{

if((year%4==0)&&(year%100!=0)||(year%400==0))

return 1;

else

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言课设中实现万年历显示节假日可以通过以下步骤来完成: 1. 获取用户输入的年份和月份。 2. 判断该年份是否为闰年,可以通过判断年份能否被4整除但不能被100整除,或者能被400整除来确定。 3. 根据用户输入的年份和月份,计算该月的天数。 4. 计算该月的第一天是星期几,可以使用Zeller公式或者其他算法来计算。 5. 根据计算得到的结果,输出日历表格,并在表格中标记出节假日。 6. 可以通过判断特定日期来确定是否为节假日,例如元旦、春节、国庆节等。 下面是一个简单的示例代码: ```c #include <stdio.h> // 判断是否为闰年 int isLeapYear(int year) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { return 1; } else { return 0; } } // 计算某个月的天数 int getMonthDays(int year, int month) { int days; if (month == 2) { if (isLeapYear(year)) { days = 29; } else { days = 28; } } else if (month == 4 || month == 6 || month == 9 || month == 11) { days = 30; } else { days = 31; } return days; } // 计算某个月的第一天是星期几 int getFirstDayOfWeek(int year, int month) { int dayOfWeek; // 使用Zeller公式计算 if (month == 1 || month == 2) { month += 12; year--; } int century = year / 100; year %= 100; dayOfWeek = (year + year / 4 + century / 4 - 2 * century + 26 * (month + 1) / 10) % 7; if (dayOfWeek < 0) { dayOfWeek += 7; } return dayOfWeek; } // 输出日历表格 void printCalendar(int year, int month) { int days = getMonthDays(year, month); int firstDayOfWeek = getFirstDayOfWeek(year, month); printf(" Sun Mon Tue Wed Thu Fri Sat\n"); for (int i = 0; i < firstDayOfWeek; i++) { printf(" "); } for (int i = 1; i <= days; i++) { printf("%4d", i); if ((i + firstDayOfWeek) % 7 == 0) { printf("\n"); } } printf("\n"); } int main() { int year, month; printf("请输入年份和月份(以空格分隔):"); scanf("%d %d", &year, &month); printCalendar(year, month); return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值