万年历

2022-07-09 04:35:12   第一文档网     [ 字体: ] [ 阅读: ] [ 文档下载 ]
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。下载word有问题请添加QQ:admin处理,感谢您的支持与谅解。点击这里给我发消息

#第一文档网# 导语】以下是®第一文档网的小编为您整理的《万年历》,欢迎阅读!
万年历



万年历

1 能够显示公元后任意年份的日历,日历以月份顺序排列,每月以星期顺序排列,类似于

一般挂历上的格式。

2、先以200011日周六作为推算起点来判定实现指定2000年后的日历 3、再将起点日期改为公元元年一月一日是星期几 4、注意判断闰年、月、周的判别

#include #include #include using namespace std; class Date {

private: int year; int month; int day; public: Date(int y=1,int m=1,int d=1):year(y),month(m),day(d){} void SetYear(int y){year=y;} bool IsLeapYear(); int GetYearDays(); int GetWeekDay(); void PrintCalendar(); };

bool Date::IsLeapYear() { return((year%4==0&&year%100!=0)||year%400==0); }

int Date::GetYearDays() { int MonthDays[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; if(IsLeapYear()) MonthDays[2]++; int days=day; for(int i=1;i days+=MonthDays[i]; return days; }

int Date::GetWeekDay() { return((year-1+(year-1)/4-(year-1)/100+(year-1)/400+1)%7);






}

void Date::PrintCalendar() { int MonthDays[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; if(IsLeapYear()) MonthDays[2]++; string MonthName[13]={"error","一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"}; string WeekName=" 星期日 星期一 星期二 星期三 星期四 星期五 星期六"; cout<"< int temp=GetWeekDay(); for(int i=1;i<=12;i++) { cout<<"___________________________________________________"< cout< for(int j=1;j<=temp;j++) cout<<" "; for(int k=1;k<=MonthDays[i];k++) { cout< temp++; if(temp==7) { cout< temp=0; } }

cout<<"\n___________________________________________________\n"< } }

int main() { Date date; int n; cout<<"输入年份:"; cin>>n; date.SetYear(n); date.PrintCalendar(); return 0; }











本文来源:https://www.dywdw.cn/b3d172640b1c59eef9c7b401.html

相关推荐
推荐阅读