📄 c11.cpp
字号:
// c11.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream.h>
#include <iomanip.h>
int FirstDayOfYear( int y );
int DaysOfMonth( int m );
void PrintMonth( int m );
void PrintHead( int m );
bool IsLeapYear( int y );
int weekDay;
int year;
int main(int argc, char* argv[])
{
cerr << "请输入您想要打印的年份:\n";
cin >> year;
if ( year < 1 )
{
cerr << "年份不能小于1。\n";
return -1;
}
weekDay = FirstDayOfYear( year );
cout << "\n\n\n\n\n " << year << " 年\n";
cout << "\n ===========================================";
for ( int i = 1; i <=12; i++ )
PrintMonth( i );
return 0;
}
void PrintMonth( int m )
{
PrintHead( m );
int days = DaysOfMonth( m );
for ( int i = 1; i <= days; i ++ )
{
cout << setw(5) << i;
weekDay = ( weekDay + 1 ) % 7;
if ( weekDay == 0 )
{
cout << endl;
cout << " ";
}
}
}
void PrintHead( int m )
{
cout << "\n\n" << setw(6) << m << "月 日 一 二 三 四 五 六\n";
cout << " ";
for ( int i = 0; i < weekDay; i ++ )
cout << " ";
}
int DaysOfMonth( int m )
{
switch( m )
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
break;
case 4:
case 6:
case 9:
case 11:
return 30;
break;
case 2:
if ( IsLeapYear( year ) )
return 29;
else
return 28;
}
return 0;
}
bool IsLeapYear( int y )
{
return ( ( y %4 == 0 && y % 100 != 0 ) || y % 400 == 0 );
}
int FirstDayOfYear( int y )
{
long n;
n = y * 365;
for ( int i = 1; i < y; i++ )
n += IsLeapYear( i );
return n %= 7;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -