万年历显示(第一个程序设计)

万年历显示

课程设计目标:
设计一个程序实现万年历的显示,要求:
(1)根据输入的年份(1980-2040),在屏幕上输出该年的日历。
(2)根据输入的年月信息,在屏幕上输出该月的日历。
(3)根据输入的年月日信息,计算距今天还有多少天,星期几,是否是节日。
( 4)输出年历时,以月份和星期做表头。
个人理解:
1.输入年份1980-2040在屏幕上输出该年的日历
2.根据输入的年月信息,在屏幕上输出该月的日历
3.根据输入的年月日信息,计算距今还有多少天,星期几,是否为节日
4.输出年历时,以月份和星期作表头。
5.要求有菜单

#include <stdio.h>
#include <math.h>
#include <string.h>
#include "time.h" 

int nowyear(){
    //获取系统的年份     
	time_t rawtime; 
	struct tm * timeinfo; 
	time ( &rawtime ); 
	timeinfo = localtime ( &rawtime );
	return( timeinfo->tm_year+1900) ;  
 }
 	
void happy(int month,int day){
    //节假日查询 
	printf("\t\t\t***********************************************\n");
	printf("\n\t\t\t"); 
	if(month==1&&day==1) printf("您所查询的日期为元旦节,祝您元旦节快乐");
	if(month==1&&day==6) printf("您所查询的日期为小寒,请注意保暖");
	if(month==1&&day==20) printf("您所查询的日期为大寒,请注意保暖"); 
	if(month==2&&day==4) printf("您所查询的日期为立春,请注意保暖");
	if(month==2&&day==14) printf("您所查询的日期为情人节,请注意保护单身狗");
	if(month==3&&day==5) printf("您所查询的日期为惊蛰,多喝热水");
	if(month==3&&day==8) printf("您所查询的日期为妇女节,多喝热水");
	if(month==3&&day==12) printf("您所查询的日期为植树节,蚂蚁森林也能种树哦");
	if(month==3&&day==20) printf("您所查询的日期为春分,多出去走走享受生活");
	if(month==4&&day==1) printf("您所查询的日期为愚人节,请小心你身边的伙伴");
	if(month==4&&day==4) printf("您所查询的日期为清明节,踏青春游正在路上");
	if(month==4&&day==19) printf("您所查询的日期为谷雨,多喝热水");
	if(month==5&&day==1) printf("您所查询的日期为劳动节,今年的劳动节您准备去哪里玩呢?");
	if(month==5&&day==4) printf("您所查询的日期为五四青年节,五四精神永远存在青年心中");
	if(month==5&&day==20) printf("您所查询的日期为小满,天气转热要多注意");
	if(month==6&&day==1) printf("您所查询的日期为儿童节,身边的孩子有没有更可爱呢?");
	if(month==6&&day==21) printf("您所查询的日期为夏至,我要一大早醒来爱你一整天");
	if(month==7&&day==1) printf("您所查询的日期为建党节,没有共产党就没有新中国");
	if(month==7&&day==6) printf("您所查询的日期为小暑,请注意避暑");
	if(month==7&&day==22) printf("您所查询的日期为大暑,也要出去运动注意湿气哦");
	if
  • 13
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
以下是一个用C语言设计的简单万年历程序的示例: ```c #include <stdio.h> // 判断是否为闰年 int isLeapYear(int year) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { return 1; } else { return 0; } } // 获取某年某月的天数 int getDaysOfMonth(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; int totalDays = 0; for (int i = 1900; i < year; i++) { totalDays += isLeapYear(i) ? 366 : 365; } for (int i = 1; i < month; i++) { totalDays += getDaysOfMonth(year, i); } dayOfWeek = (totalDays + 1) % 7; // 1900年1月1日是星期一,所以要加1 return dayOfWeek; } // 打印某年某月的日历 void printCalendar(int year, int month) { int firstDayOfWeek = getFirstDayOfWeek(year, month); int daysOfMonth = getDaysOfMonth(year, month); printf(" %d年%d月\n", year, month); printf("日 一 二 三 四 五 六\n"); // 打印该月第一天之前的空格 for (int i = 0; i < firstDayOfWeek; i++) { printf(" "); } // 打印该月的日期 for (int i = 1; i <= daysOfMonth; i++) { printf("%2d ", i); if ((firstDayOfWeek + i) % 7 == 0) { printf("\n"); } } printf("\n"); } int main() { int year, month; printf("输入年份:"); scanf("%d", &year); printf("输入月份:"); scanf("%d", &month); printCalendar(year, month); return 0; } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值