當前位置:法律諮詢服務網 - 知識產權保護 - 跪求壹個c語言編寫的日歷程序(最好加上註釋)

跪求壹個c語言編寫的日歷程序(最好加上註釋)

#include<iostream>

#include<time.h>

using namespace std;

class calendar

{

int day[2][12];

public:

calendar();

~calendar(){}

int leap(int year)const;

int week(int year,int month)const;

void showYear()const;

void showMonth()const;

void showDay()const;

};

calendar::calendar()

{

int i,j;

int days[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},

{31,29,31,30,31,30,31,31,30,31,30,31}};

for(i=0;i<2;i++)

for(j=0;j<12;j++)

day[i][j]=days[i][j];

}

//判斷year是否是閏年,是閏年返回1,不是返回0.

int calendar::leap(int year)const

{

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

return 1;

else return 0;

}

//判斷year年month月的第壹天是星期幾的函數,0為星期日,1為星期壹,依次類推.

int calendar::week(int year,int month)const

{

int i,w_day=6;

if(year-2000>=0)

{

for(i=2000;i<year;i++)

w_day+=1+leap(i);

}

else

{

for(i=1999;i>=year;i--)

w_day+=6-leap(i);

}

for(i=1;i<month;i++)

w_day+=day[leap(year)][i-1];

return w_day%7;

}

//通過輸入的年份,輸出這壹年的日歷.

void calendar::showYear()const

{

int i,j;

int Year,Month,Day,Week;

int Leap;

system("cls");

cout<<"請輸入年份"<<endl;

cin>>Year;

Leap=leap(Year);

cout<<Year<<"年的日歷"<<endl;

for(Month=1;Month<=12;Month++)

{

Day=day[Leap][Month-1];

Week=week(Year,Month);

cout<<Month<<"月"<<endl;

cout<<"日\t壹\t二\t三\t四\t五\t六"<<endl;

for(i=0;i<=Day;i++)

{

if(i==0)

{

for(j=0;j<Week;j++)

cout<<"\t";

}

else

{

cout<<i;

if((i+Week)%7)

cout<<"\t";

else

cout<<endl;

}

}

cout<<endl;

}

}

//通過輸入的年份月份,輸出這該月的日歷.

void calendar::showMonth()const

{

int i,j;

int Year,Month,Day,Week;

system("cls");

cout<<"請輸入年份與月份"<<endl;

cin>>Year>>Month;

Day=day[leap(Year)][Month-1];

Week=week(Year,Month);

cout<<Year<<"年"<<Month<<"月"<<endl;

cout<<"日\t壹\t二\t三\t四\t五\t六"<<endl;

for(i=0;i<=Day;i++)

{

if(i==0)

{

for(j=0;j<Week;j++)

cout<<"\t";

}

else

{

cout<<i;

if((i+Week)%7)

cout<<"\t";

else

cout<<endl;

}

}

cout<<endl;

}

//通過輸入的年月日,輸出這壹天與今年差幾天,是星期幾,是不是公歷節日.

void calendar::showDay()const

{

int i,j=0,flag=1,a[6],sum,Day_tem=0,Week;

int year1,month1,day1,year2,month2,day2,sumDay1=0,sumDay2=0;

time_t t;

time(&t);

day1=localtime(&t)->tm_mday;

month1=localtime(&t)->tm_mon;

year1=localtime(&t)->tm_year+1900;

system("cls");

cout<<"請輸入年月日"<<endl;

cin>>year2>>month2>>day2;

sumDay1=localtime(&t)->tm_yday;

for(i=1;i<month2;i++)

{

if(leap(year2))

sumDay2+=day[1][i-1];

else

sumDay2+=day[0][i-1];

}

sumDay2+=day2-1;

if(year2>=year1)

{

for(i=year1;i<year2;i++)

Day_tem+=365+leap(i);

if(Day_tem+sumDay2-sumDay1>=0)

cout<<"距"<<year2<<"年"<<month2<<"月"<<day2<<"日還有"<<Day_tem+sumDay2-sumDay1<<"天"<<endl;

else

cout<<"妳輸入的天數已經過去"<<sumDay1-sumDay2<<"天"<<endl;

}

else

{

for(i=year2;i<year1;i++)

Day_tem+=365+leap(i);

if(Day_tem+sumDay1-sumDay2>=0)

cout<<"妳輸入的天數已經過去"<<Day_tem+sumDay1-sumDay2<<"天"<<endl;

else

cout<<"距"<<year2<<"年"<<month2<<"月"<<day2<<"日還有"<<sumDay2-sumDay1<<"天"<<endl;

}

Week=week(year2,month2);

Week=(Week+day2-1)%7;

cout<<year2<<"年"<<month2<<"月"<<day2<<"日是";

switch(Week)

{

case 0:cout<<"星期日"<<endl;break;

case 1:cout<<"星期壹"<<endl;break;

case 2:cout<<"星期二"<<endl;break;

case 3:cout<<"星期三"<<endl;break;

case 4:cout<<"星期四"<<endl;break;

case 5:cout<<"星期五"<<endl;break;

case 6:cout<<"星期六"<<endl;break;

}

cout<<year2<<"年"<<month2<<"月"<<day2<<"日是";

//1月最後壹個星期日 國際麻風節

Week=week(year2,1);

sum=day[leap(year2)][0];

for(i=0,j=0;i<sum;i++)

{

if(!((Week+i)%7))

a[j++]=i;

}

if(sumDay2==a[--j])

{

cout<<"國際麻風節 ";

flag=0;

}

//3月最後壹個完整周的星期壹 中小學生安全教育日

Week=week(year2,3);

sum=day[leap(year2)][2];

for(i=0,j=0;i<sum;i++)

{

if((Week+i)%7==6)

a[j++]=i-5;

}

j--;

for(i=0;i<2;i++)

a[j]+=day[leap(year2)][i];

if(sumDay2==a[j])

{

cout<<"中小學生安全教育日 ";

flag=0;

}

//5月第二個星期日 母親節

//5月第三個星期日 全國助殘日

Week=week(year2,5);

sum=day[leap(year2)][4];

for(i=0,j=0;i<sum;i++)

{

if(!((Week+i)%7))

a[j++]=i;

}

for(i=0;i<4;i++)

{

a[1]+=day[leap(year2)][i];

a[2]+=day[leap(year2)][i];

}

if(sumDay2==a[1])

{

cout<<"母親節 ";

flag=0;

}

if(sumDay2==a[2])

{

cout<<"全國助殘日 ";

flag=0;

}

//6月第三個星期日 父親節

Week=week(year2,6);

sum=day[leap(year2)][5];

for(i=0,j=0;i<sum;i++)

{

if(!((Week+i)%7))

a[j++]=i;

}

for(i=0;i<5;i++)

a[2]+=day[leap(year2)][i];

if(sumDay2==a[2])

{

cout<<"父親節 ";

flag=0;

}

//9月第三個星期二 國際和平日

Week=week(year2,9);

sum=day[leap(year2)][8];

for(i=0,j=0;i<sum;i++)

{

if((Week+i)%7==2)

a[j++]=i;

}

for(i=0;i<8;i++)

a[2]+=day[leap(year2)][i];

if(sumDay2==a[2])

{

cout<<"國際和平日 ";

flag=0;

}

//9月第三個星期六 全國國防教育日

for(i=0,j=0;i<sum;i++)

{

if((Week+i)%7==6)

a[j++]=i;

}

for(i=0;i<8;i++)

a[2]+=day[leap(year2)][i];

if(sumDay2==a[2])

{

cout<<"全國國防教育日 ";

flag=0;

}

//9月第四個星期日 國際聾人節

for(i=0,j=0;i<sum;i++)

{

if(!((Week+i)%7))

a[j++]=i;

}

for(i=0;i<8;i++)

a[3]+=day[leap(year2)][i];

if(sumDay2==a[3])

{

cout<<"國際聾人節 ";

flag=0;

}

// 10月的第壹個星期壹 世界住房日

Week=week(year2,10);

sum=day[leap(year2)][9];

for(i=0,j=0;i<sum;i++)

{

if((Week+i)%7==1)

a[j++]=i;

}

for(i=0;i<9;i++)

a[0]+=day[leap(year2)][i];

if(sumDay2==a[0])

{

cout<<"世界住房日 ";

flag=0;

}

//10月的第二個星斯壹 加拿大感恩節

for(i=0,j=0;i<sum;i++)

{

if((Week+i)%7==1)

a[j++]=i;

}

for(i=0;i<9;i++)

a[1]+=day[leap(year2)][i];

if(sumDay2==a[1])

{

cout<<"加拿大感恩節 ";

flag=0;

}

//10月第二個星期三 國際減輕自然災害日

for(i=0,j=0;i<sum;i++)

{

if((Week+i)%7==3)

a[j++]=i;

}

for(i=0;i<9;i++)

a[1]+=day[leap(year2)][i];

if(sumDay2==a[1])

{

cout<<"國際減輕自然災害日 ";

flag=0;

}

//10月第二個星期四 世界愛眼日

for(i=0,j=0;i<sum;i++)

{

if((Week+i)%7==4)

a[j++]=i;

}

for(i=0;i<9;i++)

a[1]+=day[leap(year2)][i];

if(sumDay2==a[1])

{

cout<<"世界愛眼日 ";

flag=0;

}

//11月最後壹個星期四 美國感恩節

Week=week(year2,11);

sum=day[leap(year2)][10];

for(i=0,j=0;i<sum;i++)

{

if((Week+i)%7==4)

a[j++]=i;

}

j--;

for(i=0;i<10;i++)

a[j]+=day[leap(year2)][i];

if(sumDay2==a[j])

{

cout<<"美國感恩節 ";

flag=0;

}

if((sumDay2>59)&&(leap(year2)))

sumDay2--;

switch(sumDay2)

{

case 0:cout<<"元旦"<<endl;break;

case 32:cout<<"世界濕地日"<<endl;break;

case 44:cout<<"情人節"<<endl;break;

case 61:cout<<"全國愛耳日"<<endl;break;

case 63:cout<<"青年誌願者服務日"<<endl;break;

case 66:cout<<"國際婦女節"<<endl;break;

case 67:cout<<"保護母親河日"<<endl;break;

case 70:cout<<"中國植樹節"<<endl;break;

case 72:cout<<"白色情人節 國際警察日"<<endl;break;

case 73:cout<<"世界消費者權益日"<<endl;break;

case 79:cout<<"世界森林日 世界睡眠日"<<endl;break;

case 80:cout<<"世界水日"<<endl;break;

case 81:cout<<"世界氣象日"<<endl;break;

case 82:cout<<"世界防治結核病日"<<endl;break;

case 90:cout<<"愚人節"<<endl;break;

case 94:cout<<"清明節"<<endl;break;

case 96:cout<<"世界衛生日 "<<endl;break;

case 111:cout<<"世界地球日"<<endl;break;

case 115:cout<<"世界知識產權日"<<endl;break;

case 120:cout<<"國際勞動節"<<endl;break;

case 122:cout<<"世界哮喘日"<<endl;break;

case 123:cout<<"中國青年節"<<endl;break;

case 127:cout<<"世界紅十字日"<<endl;break;

case 131:cout<<"國際護士節"<<endl;break;

case 134:cout<<"國際家庭日"<<endl;break;

case 136:cout<<"世界電信日"<<endl;break;

case 139:cout<<"全國學生營養日 "<<endl;break;

case 142:cout<<"國際牛奶日"<<endl;break;

case 150:cout<<"世界無煙日 "<<endl;break;

case 151:cout<<"國際兒童節"<<endl;break;

case 155:cout<<"世界環境日"<<endl;break;

case 156:cout<<"全國愛眼日"<<endl;break;

case 167:cout<<"世界防治荒漠化和幹旱日"<<endl;break;

case 173:cout<<"國際奧林匹克日"<<endl;break;

case 175:cout<<"全國土地日"<<endl;break;

case 176:cout<<"國際禁毒日"<<endl;break;

case 181:cout<<"中國***產黨誕生日 國際建築日"<<endl;break;

case 187:cout<<"中國人民抗日戰爭紀念日"<<endl;break;

case 191:cout<<"世界人口日"<<endl;break;

case 212:cout<<"中國人民解放軍建軍節"<<endl;break;

case 223:cout<<"國際青年節"<<endl;break;

case 250:cout<<"國際掃盲日"<<endl;break;

case 252:cout<<"中國教師節"<<endl;break;

case 258:cout<<"中國腦健康日 國際臭氧層保護日"<<endl;break;

case 262:cout<<"全國愛牙日"<<endl;break;

case 263:cout<<"世界停火日"<<endl;break;

case 269:cout<<"世界旅遊日"<<endl;break;

case 273:cout<<"中華人民***和國國慶節 國際音樂日 國際老年人日"<<endl;break;

case 276:cout<<"世界動物日"<<endl;break;

case 277:cout<<"世界教師日"<<endl;break;

case 280:cout<<"全國高血壓日"<<endl;break;

case 281:cout<<"世界郵政日"<<endl;break;

case 282:cout<<"世界精神衛生日"<<endl;break;

case 286:cout<<"世界標準日"<<endl;break;

case 287:cout<<"國際盲人節 世界農村婦女日"<<endl;break;

case 288:cout<<"世界糧食日"<<endl;break;

case 289:cout<<"國際消除貧困日"<<endl;break;

case 296:cout<<"聯合國日 世界發展新聞日"<<endl;break;

case 300:cout<<"中國男性健康日"<<endl;break;

case 301:cout<<"國際生物多樣性日"<<endl;break;

case 303:cout<<"萬聖節"<<endl;break;

case 311:cout<<"中國記者節"<<endl;break;

case 312:cout<<"消防宣傳日"<<endl;break;

case 317:cout<<"世界糖尿病日"<<endl;break;

case 320:cout<<"國際大學生節 "<<endl;break;

case 328:cout<<"國際消除對婦女的暴力日"<<endl;break;

case 334:cout<<"世界愛滋病日"<<endl;break;

case 336:cout<<"世界殘疾人日"<<endl;break;

case 337:cout<<"全國法制宣傳日"<<endl;break;

case 342:cout<<"世界足球日"<<endl;break;

case 358:cout<<"聖誕節"<<endl;break;

case 362:cout<<"國際生物多樣性日"<<endl;break;

default:if(flag) cout<<"沒有節日滴"<<endl;else cout<<endl;break;

}

}

main()

{

calendar obj;

int i,flag=1;

while(flag)

{

system("cls");

cout<<"年歷顯示\n請按以下數字進行操作"<<endl;

cout<<"1,輸入壹個年份,輸出是在屏幕上顯示該年的日歷"<<endl;

cout<<"2,輸入年月,輸出該月的日歷"<<endl;

cout<<"3,輸入年月日,輸出距今天還有多少天,星期幾,是否是公歷節日"<<endl;

cout<<"4,退出"<<endl;

scanf("%d",&i);

switch(i)

{

case 1:obj.showYear();system("pause");break;

case 2:obj.showMonth();system("pause");break;

case 3:obj.showDay();system("pause");break;

case 4:flag=0;break;

default:cout<<"輸入有誤,請重新輸入"<<endl;system("pause");break;

}

}

return 0;

}

  • 上一篇:股東不履行出資義務怎麽辦?
  • 下一篇:湟源縣人民法院李世燕刑事判決
  • copyright 2024法律諮詢服務網