
Untitled
By: a guest on
Aug 20th, 2012 | syntax:
None | size: 2.96 KB | hits: 6 | expires: Never
//以輸入的年、月、日、星期為基準,輸出當月的日曆
#include <iostream>
#include <iomanip>
using namespace std;
int year1(int); //宣告判斷閏年的函式
int main()
{
int year,month,day,week,day1,week1,day2[31];
cout<<"請依序輸入年、月、日、星期\n" ;
cin>>year>>month>>day>>week;
switch (month) //輸出年、月,並計算總天數
{
case 1:
cout<<year<<" January\n";
day1=31;
break;
case 3:
cout<<year<<" March\n";
day1=31;
break;
case 4:
cout<<year<<" April\n";
day1=30;
break;
case 5:
cout<<year<<" May\n";
day1=31;
break;
case 6:
cout<<year<<" June\n";
day1=30;
break;
case 7:
cout<<year<<" July\n";
day1=31;
break;
case 8:
cout<<year<<" August\n";
day1=31;
break;
case 9:
cout<<year<<" September\n";
day1=30;
break;
case 10:
cout<<year<<" October\n";
day1=31;
break;
case 11:
cout<<year<<" November\n";
day1=30;
break;
case 12:
cout<<year<<" December\n";
day1=31;
break;
default:
cout<<year<<" February\n";
day1=year1(year); //呼叫函式
break;
}
cout<<setw(4)<<"SUN"<<setw(4)<<"MON"<<setw(4)<<"TUE"<<setw(4)<<"WED"<<setw(4)<<"THU"<<setw(4)<<"FRI"<<setw(4)<<" SAT\n";
week1=week-(day%7-1); //計算1號是星期幾
if (week1<0)
{
week1+=7;
}
for (int a=0,b=1;a<31;a++,b++) //讓每天都有一個變數代表
{
day2[a]=b;
}
if (week1!=0)
{
for (int i=1;i<=week1;i++) //若1號不是星期一,需保留空格
{
cout<<setw(4)<<" ";
}
cout<<setw(4)<<day2[0];
}
for (int i=2,a=1,week2=week1+1;i<=day1;i++,a++,week2++) //輸出其餘日期
{
if (week2>6) //超過7天要換行
{
week2-=8;
i--;
a--;
cout<<endl;
continue;
}
cout<<setw(4)<<day2[a];
}
cout<<endl;
system("pause");
return 0;
}
int year1(int year) //判斷閏年函式
{
if (year%400==0)
{
return 29;
}
else if (year%100==0)
{
return 28;
}
else if (year%4==0)
{
return 29;
}
else
{
return 28;
}
}