从2000年一月一日算,给一个天数,算出它是多少年月日 星期几

/#include  
#include  
using namespace std; 
bool isLeapYear(int year)                            //判断是否为闰年
 {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
 }

 int main()
 { 
string week[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};         //定义字符串数组存储星期
int monthDay[] = {0, 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};     //定义整型数组保存每月的天数
int leapYear[] = {365, 366};   //定义整型数组保存每年的天数
int year;
int month; 
int day; 
int d; 
int dayofweek;
while(cin>>d && d != -1)

//从2000-01-01开始计算
year = 2000; 
month = 1;
day = 1; 
dayofweek = 6;
while(d >= leapYear[isLeapYear(year)])    //处理每一年  

dayofweek = (dayofweek + leapYear[isLeapYear(year)]%7) % 7;
d -= leapYear[isLeapYear(year)];
year++; 

for(int i=1; i<=d; i++) 

dayofweek++; 
if(dayofweek % 7 == 0) //星期,七天一个周期循环 

dayofweek = 0;

day++; 
if(month != 2 && day > monthDay[month]) //到了一个月的最后一天,月份累加 
{
month++; day = 1; 
}
if(month == 2 && isLeapYear(year) && day > 29)// 二月份单独算

month++; 
day = 1; 

if(month == 2 && !isLeapYear(year) && day > 28) 

month++; 
day = 1; 

if(month > 12) //到了12月,年累加
{
month = 1; 
year++; 
}
}
cout< if(month<10) 

cout<<"0"<
else 

cout< }
cout<<"-"; 
if(day<10) 
{ cout<<"0"<
else 

cout<
cout<<" "<
return 0; 
 }

你可能感兴趣的:(PHP)