전통문화대전망 - 오늘의 황력 - C 연력
C 연력
# 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 을 반환합니다
}