전통문화대전망 - 오늘의 황력 - C 연력

C 연력

# include & ltstdio.h & gt

# include & lttime.h & gt

# include & ltstdlib.h & gt

//현재 연도의 달력을 인쇄하여 학번으로 이름이 지정된 폴더 아래의 파일 이름으로 출력합니다.

Const char 출력 파일 이름! \n ",년, 시작 _ 년);

반환;

}

/* 입력된 월 확인 */

If (월<0 || 월> 12)

{

Printf ("잘못된 달: %d! 달은 범위 내에 있어야 합니다! \n ",년, 시작 _ 년);

반환;

}

/* * * * * 달력 인쇄 시작 * * * * * * * * * * * *

/* 달력 연도 제목 */

Printf ('달력 %d\n', 연도);

For (startmonth =1; 시작 월<= 12; Startmonth+= showmonthnumperline)

{

Showmonthnumperline = (startmonth+maxshowmonthnumperline) < = 12? Maxshowmonthnumperline: (12-startmonth+1);

/* 1 달력 월두 */

For (월 = 시작 월; 월< (startmonth+showmonthnumperline); 월++)

{

Printf ("%-28s", month _ name [month-1]);

}

Printf ("\ n");

/* 2 년 달력의 주수 */

For (월 = 시작 월; 월< (startmonth+showmonthnumperline); 월++)

{

For(I = 0;; 나<7; I++)

{

Printf ('%s', week _ name _ short [I]);

}

Printf ("");

}

Printf ("\ n");

//분할선

For (월 = 시작 월; 월< (startmonth+showmonthnumperline); 월++)

{

For(I = 0;; 나 & lt4*7; I++)

{

Printf ("_");

}

Printf ("");

}

Printf ("\ n");

/* 데이터 초기화 */

For (월 = 시작 월; 월< (startmonth+showmonthnumperline); 월++)

{

//매월 첫날 주

First day ofmonthinweekday [month-start month] = get first day ofmonthinweekday (year, month);

//한 달 중 매일

Daysofmount [month-startmonth] = getdaysofmount (year, month);

//출력된 일 수 카운터

Days counter [month-startmonth] =-first day ofmonthinweekday [month-startmonth]+1;

}

/* 하루 3 개의 달력 예약 */

ShowMonthCounterPerLine = 0;;

While (showmonthcounterperline < ShowMonthNumPerLine)

{

For (월 = 시작 월; 월< (startmonth+showmonthnumperline); 월++)

{

For(I = 0;; 나<7; I++)

{

If (days counter [month-startmonth] < = 0 | | days counter [month-startmonth] > 매월 며칠 [월-월 시작])

{

Printf(“% 4s','');

}

기타

{

Printf(“% 3d', days counter [month-startmonth]);

}

Days counter [month-startmonth]++;

If (days counter [month-startmonth] > 매월 며칠 [월-월 시작])

{

Showmonthcounterperline++;

}

}

Printf ("");

}

Printf ("\ n");

}

//분할선

For (월 = 시작 월; 월< (startmonth+showmonthnumperline); 월++)

{

For(I = 0;; 나 & lt4*7; I++)

{

Printf ("_");

}

Printf ("");

}

Printf ("\ n");

}

}

Int main(int argc, char *argv [])

{

Int 년, 월;

Time _ t t t = 시간 (비어 있음);

Structtm * now = localtime (& T);

Int choice

/*

1

모든 연도 및 월의 달력을 표시합니다.

행당 두 달 형식으로 그해 달력을 출력합니다.

행당 2 개월 형식으로 모든 연도의 달력을 출력합니다.

*/

While( 1)

{

Printf ("× × × × × × × × × × × \ n");

Printf ("1현재 월의 달력 출력1\ n");

Printf ("2 현재 연도 달력 2 출력 \ n");

Printf ("3 모든 연도 및 월을 지정하는 달력 3 \ n");

Printf ("4 임의의 연도를 지정하는 달력 4 \ n");

Printf(“5 exits 5 \ n“); ");

Printf ("× × × × × × × × × × × \ n");

Scanf ('%d',& 선택);

스위치 (선택)

{

사례 1:

PrintMonthCalendar (현재-> Tm_year+ 1900, now-& gt;; Tm _ mon+1);

깨뜨리다

사례 2:

봄 달력 (현재-> Tm _ year+1900,2);

깨뜨리다

사례 3:

Printf ("연도 및 월 입력 (yyyy-mm):");

Scanf(“% d-% d-%d',& 연도 및 연도. 월);

PrintMonthCalendar (년, 월);

깨뜨리다

시나리오 4:

Printf (입력 연도 (YYYY):“);: ");

Scanf(“% d-% d-%d',& 연도);

Printyearcalendar (연도, 2);

깨뜨리다

사례 5:

종료 (0);

기본값:

Printf ("선택 오류, 다시 선택하십시오. \ n"); 을 눌러 섹션을 인쇄할 수도 있습니다

}

}

0 을 반환합니다

}