c++任意年月历代码
代码如下:

#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
void calendar(int iyear, int imonth)
{
int i = 1900,blank=0,flag1,flag2=0;
int day = 0,mday;
//计算每月1日星期几
while (i < iyear)
{
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
day += 366;
else
day += 365;
i++;
}
if (imonth == 2)
day += 31;
if (imonth == 3)
day += 31 + 28;
if (imonth == 4)
day += 31 + 28 + 31;
if (imonth == 5)
day += 31 + 28 + 31 + 30;
if (imonth == 6)
day += 31 + 28 + 31 + 30 + 31;
if (imonth == 7)
day += 31 + 28 + 31 + 30 + 31 + 30;
if (imonth == 8)
day += 31 + 28 + 31 + 30 + 31 + 30 + 31;
if (imonth == 9)
day += 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31;
if (imonth == 10)
day += 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30;
if (imonth == 11)
day += 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
if (imonth == 12)
day += 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
if ((iyear % 4 == 0 && iyear % 100 != 0 || iyear % 400 == 0) && (imonth > 2))
day += 1;
day = day % 7 + 1;
//1日前空格数量
blank += (day - 1) * 4;
//计算输出月份的每月天数
if (imonth == 1 || imonth == 3 || imonth == 5 || imonth == 7 || imonth == 8 || imonth == 10 || imonth == 12)
mday = 31;
else
{
if (imonth == 2)
{
if (iyear % 4 == 0 && iyear % 100 != 0 || iyear % 400 == 0)
mday = 29;
else
mday = 28;
}
else
mday = 30;
}
//输出部分
cout << "一 二 三 四 五 六 日" << endl;
for (flag1 = 0; flag1 < blank; flag1++)
cout << " ";
while (flag2 < mday)
{
if (flag2 < 9)
cout << flag2 + 1 << " ";
else
cout << flag2 + 1;
if (day == 7)
cout << endl;
else
cout << " ";
flag2++;
day = (day + 1) % 7;
if (day == 0)
day = 7;
}
}
int main()
{
char cmd = 'Y';
int year, month;
while (1)
{
if (cmd == 'Y'||cmd=='y')
{
cout << "欢迎使用万年历系统v1.0" << endl;
cout << "请输入年份、月份:";
cin >> year >> month;
system("cls");
cout << " " << year << "年 " << month << "月" << endl << endl;
calendar(year, month);
cout << endl << endl;
cout << "按任意键继续..." << endl;
getchar();
getchar();//实现回车功能
system("cls");
cout << "是否需要再次显示其他月历?(Y/N):";
cin >> cmd;
}
else
{
system("cls");
cout << "欢迎再次使用本系统!" << endl;
break;
}
if (cmd == 'Y' || cmd == 'y')
system("cls");
}
return 0;
}

