C++实现万年历(原创).pdf
C++实实现现万万年年历历((原原创创))
任任务务要要求求
功能要求:
(1)提供菜单⽅式选择,假定输⼊的年份1940-2040年之间。
(2)输⼊⼀个年份,输出是屏幕上显⽰该年的⽇历。
(3)输⼊年⽉,输出该⽉的⽇历,如图2-1所⽰:
图2-1⽉⽇历
(4)输⼊年份、⽉份、⽇期,计算得到的是这⼀天据今天有多少天,星期⼏。
(5)输⼊公历的年⽉⽇,输出农历年⽉⽇。
(6)输⼊农历节⽓,输出当年农历的年⽉⽇及公历年⽉⽇。可以假定只涉及年份是1940年到2040年。
总总体体设设计计
将⽂件三部分Date.h、main.cpp、Date.cpp
1)Date.h:包括函数的声明。
2)main.cpp:包含调⽤与模拟交互界⾯的函数代码
3)Date.cpp:
//输⼊输⼊⼀个年份,输出是屏幕上显⽰该年的⽇历。
voidprint_annual_calendar(intear)
//输⼊年⽉,输出该⽉的⽇历。
voidprint_monthl_calendar(intear,intmonth)
//输⼊年份、⽉份、⽇期,计算得到的是这⼀天据今天有多少天,星期⼏。
voidprint_number_week(intear,intmonth,intda)
//输⼊公历,显⽰农历。
voidgregorian_to_lunar(intear,intmonth,intda)
//输⼊农历节⽓,输出当年农历的年⽉⽇和公历年⽉⽇。
voidsolar_term(char*str)
详详细细设设计计说说明明
(1)查询距今多少天,星期⼏?
①计算某⼀⽇期到1939年1⽉1⽇的天数:getDasTo1939(intear,intmonth,intda)
1.判断是否是闰年(平年365天,闰年366天),函数如表4-1所⽰:
表4-1isLeapYear函数
定义函数boolisLeapYear(intear)
返回值若ear年是闰年返回true,否则返回false
参数说明ear参数是要判断的年份
1.判断某年某⽉有多少天?函数如表4-2所⽰:
表4-2getDasOfMonth函数
定义函数intgetDasOfMonth(intear,intmonth)
返回值返回ear年month⽉的天数
参数说明ear、month参数分别是要查询的年、⽉
例如:计算2020年8⽉14⽇到1939年1⽉1⽇的天数。⾸先1939-2019年是整数年,直接判断是否是闰年,然后增加天数。2020年不是整年,但1-7⽉是整数⽉,根据年、⽉获取
当⽉天数累加。最后再加天数da,便得出相距与1939年1⽉1⽇的天数。
②计算查询⽇期距今天多少天?getDasOfMonthToToda(intear,intmonth,intda),函数如表4-3所⽰:
1.通过函数获取系统时间,通过getDasTo1939(),获取系统时间距1939年1⽉1⽇的天数num1。
2.使⽤键盘输⼊的⽇期,通过getDasTo1939(),获取输⼊⽇期距1939年1⽉1⽇的天数num2。
3.使⽤num1-num2计算输⼊⽇期距今天的天数,正数为已过去时间,负数为未来时间。
表4-3getDasOfMonthToToda函数
定义函数