무릎을 꿇고 C 언어로 쓴 달력 프로그램을 구하다.
# include & lttime.h & gt
네임스페이스 STD 사용
클래스 달력
{
Intday [2] [12];
공용:
달력 ();
~calendar(){}
윤년 상수
Int 주 (int 년, int 월) 상수;
Voidshowyear () const;
Voidshowmonth () const;
Voidshowday () const;
}
달력:: 달력 ()
{
Int I, j;
Intdays [2] [12] = {3 1, 28,31,30,3/kloc
{31,29,31,30,31,30,31,3/
For(I = 0;; 나<2; I++)
For(j = 0;; J< 12; J++)
Day [I] [j] = days [I] [j];
}
//연도가 윤년인지 확인하고 윤년이면 1 을 반환하고 0 을 반환하지 않습니다.
Int calendar:: 윤년 (int year) 상수
{
만약 (! (연도 %400)|| (연도%100) & & amp! (%4 년차))
1;
그렇지 않으면 0 을 반환합니다
}
//1 년 중 한 달의 첫날은 요일의 함수이고, 0 은 일요일이고, 1 은 월요일이다.
Int calendar::week(int year, int month) 상수
{
Int I, w _ day = 6;;
만약 (기원 2000 년 & gt=0)
{
For(I = 2000;; 나< 연도; I++)
W _ day+=1+leap (I);
}
기타
{
For (I =1999; 나>= 년; 나-)
W _ day+= 6-leap (I);
}
For (I =1; 나< 월; I++)
W _ day+= day[ 윤년] [I-1];
%7 일째를 되돌려줍니다.
}
//연도를 입력하여 올해의 달력을 출력합니다.
Void calendar::showYear () 상수입니다
{
Int I, j;
Int 년, 월, 일, 주;
Int Leap
시스템 ("cls");
Cout & lt& lt "연도를 입력하십시오"
CIN>;; & gt 연도;
윤일 = 윤일 (년);
Cout & lt& lt 연도<& lt "달력 연도" < & ltendl
For (month =1; 월<= 12; 월++)
{
일 = 일 [윤일] [월-1];
주 = 주 (년, 월);
Cout & lt& lt 월<& lt "월"
Cout & lt< "day \ t1\ T2 \ T3 \ T4 \ t5 \ T6" < < 엔델
For(I = 0;; 나<= 일; I++)
{
다음 경우 (i==0)
{
For(j = 0;; J< 주; J++)
Cout & lt< "\ t";
}
기타
{
Cout & lt& lt 나;
((I+ 주) %7 인 경우
Cout & lt< "\ t";
기타
Cout & lt& ltendl
}
}
Cout & lt& ltendl
}
}
//입력된 연월을 통해 이번 달 달력을 출력합니다.
Void calendar::showMonth()const
{
Int I, j;
Int 년, 월, 일, 주;
시스템 ("cls");
Cout & lt& lt "연도와 월을 입력하십시오."
CIN>;; & gt 연도>& gt 월;
일 = 일 [윤일 (년)] [월-1];
주 = 주 (년, 월);
Cout & lt& lt 연도<& lt "연도"
Cout & lt< "day \ t1\ T2 \ T3 \ T4 \ t5 \ T6" < < 엔델
For(I = 0;; 나<= 일; I++)
{
다음 경우 (i==0)
{
For(j = 0;; J< 주; J++)
Cout & lt< "\ t";
}
기타
{
Cout & lt& lt 나;
((I+ 주) %7 인 경우
Cout & lt< "\ t";
기타
Cout & lt& ltendl
}
}
Cout & lt& ltendl
}
//날짜를 입력하여 이 날과 올해의 차이, 오늘이 무슨 날인지, 양력 명절인지 수출한다.
Void calendar::showDay()const
{
Int I, j=0, flag= 1, a[6], sum, Day_tem=0, Week
Int year 1, month 1, day 1, year2, month2, day2, sum day/kr
Time _ t t t
시간 (& ampt);
Day 1=localtime. T)-gt; Tm _ mday
Month 1=localtime. T)-gt; Tm _ mon
연도1= 로컬 시간. T)-gt; Tm _ year+1900;
시스템 ("cls");
Cout & lt& lt 년, 월, 일을 입력하십시오
CIN>;; & gtyear2 & gt& gtmonth2 & gt& gt 다음 날;
Sumday1= localtime (& T)-gt; Tm _ yday
For (I =1; 나 & ltmonth2i++)
{
If (윤년 2)
Sum day2+= day [1] [I-1];
기타
Sumday2+= day [0] [I-1];
}
Sum day2+= day2-1;
If (연도 2 > = 연도1)
{
For (I = year1; 나< 이듬해; I++)
Day _ tem+= 365+leap (I);
If (day _ tem+sum day 2-sum day1> =0)
Cout & lt& lt "거리" << 2 년차<& lt "연도"
기타
Cout & lt& lt "입력한 일수가 이미 지났습니다" < & ltsumday1-sumday2 < & lt "하느님"
}
기타
{
For (I = year2; 나 & ltyear1; I++)
Day _ tem+= 365+leap (I);
If (day _ tem+sumday1-sumday 2 > =0)
Cout & lt& lt "입력한 일수가 이미 지났습니다." < & ltday _ tem+sumday1-sumday2 < & lt "하느님"
기타
Cout & lt& lt "거리" << 2 년차<& lt "연도"
}
Week = week (연도 2, 월 2);
Week = (week+day2-1)% 7;
Cout & lt& lt 2 년차<& lt "연도"
전환 (주)
{
사례 0: cout < Lt "일요일"
사례1:cout < & lt "월요일"
사례 2: cout < & lt "화요일"
사례 3: cout & lt& lt "수요일"
사례 4: cout < & lt "목요일"
사례 5: cout < Lt "금요일"
사례 6: cout < & lt "토요일"
}
Cout & lt& lt 2 년차<& lt "연도"
//65438+ 10 월 마지막 일요일 국제 나병 축제
주 = 주 (년 2,1);
Sum = day [leap (연도 2)] [0];
For(i=0, j = 0;; 나< 합계; I++)
{
만약 (! ((+i 주) %7))
A [j++] = I;
}
If(sumDay2==a[-j])
{
Cout & lt& lt 국제 나병 축제;
Flag = 0;;
}
//3 월 마지막 주 월요일은 초중고생 안전교육의 날이다.
Week = 주 (연도 2,3);
Sum = day [leap (연도 2)] [2];
For(i=0, j = 0;; 나< 합계; I++)
{
If((Week+i)%7==6)
A [j++] = I-5;
}
J-;
For(I = 0;; 나<2; I++)
A [j]+= day [leap (연도 2)] [I];
If(sumDay2==a[j])
{
Cout & lt& lt "초등 및 중등 학교 안전 교육의 날";
Flag = 0;;
}
//5 월 둘째 일요일은 어머니의 날
//5 월 셋째 일요일은 전국 잔해의 날이다
Week = 주 (연도 2,5);
Sum = day [leap (연도 2)] [4];
For(i=0, j = 0;; 나< 합계; I++)
{
만약 (! ((+i 주) %7))
A [j++] = I;
}
For(I = 0;; 나<4; I++)
{
A[ 1]+= day[ 윤년 (연도 2)] [I];
A [2]+= day [leap (연도 2)] [I];
}
If(sumDay2==a[ 1])
{
Cout & lt& lt 어머니의 날;
Flag = 0;;
}
If(sumDay2==a[2])
{
Cout & lt& lt "국가 잔해의 날";
Flag = 0;;
}
//6 월 셋째 일요일은 어버이날이다
Week = 주 (연도 2,6);
Sum = day [leap (연도 2)] [5];
For(i=0, j = 0;; 나< 합계; I++)
{
만약 (! ((+i 주) %7))
A [j++] = I;
}
For(I = 0;; 나<5; I++)
A [2]+= day [leap (연도 2)] [I];
If(sumDay2==a[2])
{
Cout & lt& lt 아버지의 날;
Flag = 0;;
}
//9 월 셋째 화요일은 국제평화의 날이다
Week = 주 (연도 2,9);
Sum = day [leap (연도 2)] [8];
For(i=0, j = 0;; 나< 합계; I++)
{
If((Week+i)%7==2)
A [j++] = I;
}
For(I = 0;; 나<8; I++)
A [2]+= day [leap (연도 2)] [I];
If(sumDay2==a[2])
{
Cout & lt& lt "국제 평화의 날";
Flag = 0;;
}
//9 월 셋째 토요일은 국방교육의 날이다
For(i=0, j = 0;; 나< 합계; I++)
{
If((Week+i)%7==6)
A [j++] = I;
}
For(I = 0;; 나<8; I++)
A [2]+= day [leap (연도 2)] [I];
If(sumDay2==a[2])
{
Cout & lt& lt "국방 교육의 날";
Flag = 0;;
}
//9 월 넷째 일요일은 국제 청각 장애인의 날이다
For(i=0, j = 0;; 나< 합계; I++)
{
만약 (! ((+i 주) %7))
A [j++] = I;
}
For(I = 0;; 나<8; I++)
A[3]+= day[ 윤년 (연도 2)] [I];
If(sumDay2==a[3])
{
Cout & lt& lt 국제 청각 장애인의 날;
Flag = 0;;
}
//65438+ 10 월 첫 월요일 세계 주택의 날.
주 = 주 (연도 2,10);
Sum = day [leap (연도 2)] [9];
For(i=0, j = 0;; 나< 합계; I++)
{
If((Week+i)%7== 1)
A [j++] = I;
}
For(I = 0;; 나<9; I++)
A [0]+= day [leap (연도 2)] [I];
If(sumDay2==a[0])
{
Cout & lt& lt 세계 주택의 날;
Flag = 0;;
}
//6 월 둘째 별 10- 캐나다 추수감사절
For(i=0, j = 0;; 나< 합계; I++)
{
If((Week+i)%7== 1)
A [j++] = I;
}
For(I = 0;; 나<9; I++)
A[ 1]+= day[ 윤년 (연도 2)] [I];
If(sumDay2==a[ 1])
{
Cout & lt& lt "캐나다 추수 감사절";
Flag = 0;;
}
//65438+ 10 월 둘째 수요일 국제감소자연재해의 날
For(i=0, j = 0;; 나< 합계; I++)
{
If((Week+i)%7==3)
A [j++] = I;
}
For(I = 0;; 나<9; I++)
A[ 1]+= day[ 윤년 (연도 2)] [I];
If(sumDay2==a[ 1])
{
Cout & lt& lt "국제 자연 재해의 날";
Flag = 0;;
}
//65438+ 10 월 둘째 목요일 세계 사랑의 날
For(i=0, j = 0;; 나< 합계; I++)
{
If((Week+i)%7==4)
A [j++] = I;
}
For(I = 0;; 나<9; I++)
A[ 1]+= day[ 윤년 (연도 2)] [I];
If(sumDay2==a[ 1])
{
Cout & lt& lt "세계 사랑의 날";
Flag = 0;;
}
// 165438+ 미국 추수감사절은 10 월 마지막 목요일에
Week = 주 (연도 2,11);
Sum = day [leap (연도 2)] [10];
For(i=0, j = 0;; 나< 합계; I++)
{
If((Week+i)%7==4)
A [j++] = I;
}
J-;
For(I = 0;; 나< 10; I++)
A [j]+= day [leap (연도 2)] [I];
If(sumDay2==a[j])
{
Cout & lt& lt "미국 추수감사절";
Flag = 0;;
}
If ((sum day 2 > 59)& amp;; & amp (윤년 (2 년차)))
Sum day 2-;
스위치 (sumDay2)
{
사례 0: cout < & lt "설날"
사례 32:cout & lt;; & lt "세계 습지의 날"
사례 44:cout & lt;; Lt "발렌타인 데이"
사례 61:cout < & lt "전국 사랑의 날"
사례 63:cout & lt;; & lt "청소년 자원 봉사의 날" endl 이 깨졌습니다.
사례 66:cout & lt;; & lt "국제 여성의 날"
사례 67:cout & lt;; & lt "어머니 강 보호의 날" 엔델이 깨졌습니다.
사례 70:cout & lt;; & lt "중국 식목일" < & ltendl 깨진;
사례 72:cout & lt;; & lt "화이트 데이 국제 경찰의 날"
사례 73:cout & lt;; & lt "세계 소비자 권리의 날"
사례 79:cout & lt;; LT "세계 숲의 날, 세계 수면의 날" 엔델이 깨졌습니다.
사례 80:cout & lt;; & lt "세계 물의 날" endl 이 깨졌습니다.
사례 81:cout < & lt "세계 기상의 날" endl 이 깨졌습니다.
사례 82:cout & lt;; & lt "세계 결핵의 날"
사례 90:cout & lt;; Lt' 만우절'
사례 94:cout & lt;; Lt' 청명절'
사례 96:cout & lt;; & lt "세계 보건의 날"
사례111:cout < & lt "지구의 날"
사례115: cout < & lt "세계 지적 재산권의 날" endl 이 깨졌습니다.
사례120: cout < & lt "국제 노동절"
사례122: cout < & lt "세계 천식 데이"
사례123: cout < & lt "중국 청년절"
사례127: cout < & lt "세계 적십자의 날"
사례131:cout < & lt "국제 간호사 축제" endl 깨진;
사례134: cout < & lt "국제 가정의 날"
사례136: cout < & lt "세계 통신의 날" < & ltendl 깨진;
사례139: cout < & lt "전국 학생 영양의 날"
사례142: cout < & lt "국제 우유의 날"
사례150: cout < & lt "세계 무연의 날" 엔델이 깨졌습니다.
사례151:cout < Lt "국제 어린이날"
사례155: cout < & lt "세계 환경의 날"
사례156: cout < & lt "전국 사랑의 날"
사례167: cout < & lt "세계 사막화 및 가뭄의 날"
사례173: cout < & lt "국제 올림픽의 날"
사례175: cout < & lt "국가 토지의 날" endl 이 깨졌습니다.
사례176: cout < & lt "국제 마약 금지의 날" endl 이 깨졌습니다.
사례181:cout < & lt "중국 * * * 생산당 탄생일 국제건축일"
사례187: cout < & lt "중국 인민 항일전쟁 기념일"
사례191:cout < & lt "세계 인구의 날"
사례 212: cout < LT' 중국 인민해방군건군절' << Endl 이 깨졌습니다.
사례 223:cout & lt;; & lt "국제 청소년의 날"
사례 250:cout & lt;; & lt "국제 문맹 퇴치의 날"
사례 252:cout & lt;; & lt "중국 스승의 날" < & ltendl 깨진;
사례 258:cout & lt;; & lt 중국 뇌 건강의 날, 국제 오존층 보호의 날
사례 262:cout & lt;; & lt "전국 치아의 날"
사례 263:cout & lt;; & lt "세계 휴전의 날"
사례 269:cout & lt;; & lt "세계 관광의 날"
사례 273:cout & lt;; Lt 중화 인민 공화국 국경일, 국제 음악의 날 및 국제 노인의 날
사례 276:cout & lt;; & lt "세계 동물의 날"
사례 277:cout & lt;; & lt "세계 스승의 날" < & ltendl 깨진;
사례 280:cout & lt;; & lt "전국 고혈압의 날" endl 이 깨졌습니다.
사례 281:cout < & lt "세계 우편의 날"
사례 282:cout & lt;; & lt "세계 정신 건강의 날"
사례 286:cout & lt;; & lt "세계 표준의 날"
사례 287:cout & lt;; & lt "국제 맹인의 날, 세계 농촌 여성의 날"
사례 288:cout & lt;; & lt "세계 식량의 날"
사례 289:cout & lt;; & lt "국제 빈곤 퇴치의 날"
사례 296:cout & lt;; 유엔의 날, 세계 개발 뉴스의 날
사례 300:cout & lt;; Lt "중국 남성 건강의 날" < & ltendl 이 깨졌습니다.
사례 301:cout < & lt "국제 생물 다양성의 날"
사례 303:cout & lt;; & lt "할로윈 데이"
사례 311:cout < & lt "중국 기자의 날" endl 이 깨졌습니다.
사례 312: cout < & lt "화재 선전의 날" endl 이 깨졌습니다.
사례 317: cout < & lt "세계 당뇨병의 날"
사례 320:cout & lt;; & lt "국제 대학 생일"
사례 328:cout & lt;; & lt "여성 폭력 근절의 날"
사례 334:cout & lt;; & lt "세계 에이즈의 날"
사례 336:cout & lt;; & lt "세계 장애인의 날"
사례 337:cout & lt;; & lt "국가 법률 선전의 날"
사례 342:cout & lt;; Lt "세계 축구의 날"
사례 358:cout & lt;; & lt "크리스마스"
사례 362:cout & lt;; & lt "국제 생물 다양성의 날"
기본값: if (flag) cout < & lt' 명절 없음' < & ltendlelse cout & lt& ltendl 휴식;
}
}
주 ()
{
달력 obj
Int I, flag =1;
While (로고)
{
시스템 ("cls");
Cout & lt& lt' 달력 표시 \ n 다음 숫자 "< & ltendl" 을 누르십시오
Cout & lt< "1,연도를 입력하고 화면에 표시된 연도 달력을 출력합니다." < & ltendl
Cout & lt& lt2, 입력 년 월, 출력 이번 달 달력
Cout & lt& lt"3. 연도, 월, 일을 입력하고 오늘부터 며칠 더 남았는지, 양력 휴일' < & ltendl' 인지 여부를 출력합니다
Cout & lt& lt4, 끝내기
Scanf("%d ",& ampi);
스위치 (1)
{
Case1:obj.showyear (); 시스템 ("일시 중지"); 깨뜨리다
사례 2: obj.showmonth (); 시스템 ("일시 중지"); 깨뜨리다
사례 3: obj.showday (); 시스템 ("일시 중지"); 깨뜨리다
시나리오 4: flag = 0; 깨뜨리다
기본값: cout & lt& lt "입력 오류, 다시 입력" < & ltendl 시스템 ("일시 중지"); 깨뜨리다
}
}
0 을 반환합니다
}