- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
万年历:
#include iostream #include iomanip #include cstring using namespace std ;
class cal
{
private:
int y,m,d;
public:
void get_year(); void get_month(); void get_day(); int isleap();
int day_kind(int mm); int dayinaweek();
int days_total(); int animals();
int get_y(){return y;} int get_m(){return m;} int get_d(){return d;} void print_();
void print_days(); void error_();
void initM(int mm){m=mm;}
void print_blanks(int n) {for(int i=1;i=n;i++) cout ;}//打印空格
};//-----------------
int t=15;
char* data_order[8]={@,一,二,三,四,五,六,日} ;
char* hours[13]={@,鼠,牛,虎,兔,龙,蛇,马,羊,猴,鸡,狗,猪};
//---------------------
void cal::get_day(){ int day; print_blanks(t);
cout请输入日子: ;
cinday; d=day;
}//-------------------
void cal::get_month(){ int month;
print_blanks(t);
cout请输入月份: ; cinmonth;
m=month;
}//-------------------
void cal::get_year(){ int year; print_blanks(t);
cout请输入年份: ;
cinyear; y=year;
}//---------------------------
void cal::error_(){ //给出错误提示print_blanks(t);
cout输入错误! endl;
}//---------------------------
inline int cal::isleap(){ //判断闰年if(y%4==0y%100!=0||y%400==0) return 1; //is a leap year
else
return 0; //not a leap year
}//-------------------
inline int cal::day_kind(int mm){//判断每个月有多少天
if(mm==1 || mm==3 || mm==5 || mm==7 || mm==8 || mm==10 || mm==12) return 31; //大月 31
else if(mm==2 isleap())//闰年
return 29;
else if(mm==2 !isleap())//非闰年return 28;
else
return 30; //正常年份 30
}//-------------------
inline int cal::days_total(){//选择 1900 年 1 月 1 日星期一为起点 . int days=0;
for(int i=1900;iy;i++) //从 1900 年到 X 年 1 月 1 日的天数
{
if(i%4==0 i%100!=0 || i%400==0 ) days+=366;
else
}
days+=365;
for(int i=1;im;i++){//再加上从 1 月 1 日到 mm 月跨越的天数
days+=day_kind(i);
}
days+=(d-1) ;//再加上 1 日到 d 日的跨越天return days;
}//-------------------
int cal::dayinaweek(){//判断某天周几
long int k=days_total();//判断一共过了多少天if(k%7==0)
return 1; //因为选择的参考日期是周一,所以返回一
else
return (k%7+1);
}//------------------------
void cal::print_(){ //打印眉头:一二三四五六日print_blanks(t);
for(int i=1;i8;i++) coutsetw(4)data_order[i]; coutendl;
文档评论(0)