我是靠谱客的博主 奋斗彩虹,最近开发中收集的这篇文章主要介绍从2000年一月一日算,给一个天数,算出它是多少年月日 星期几,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/#include <iostream> 
#include <string> 
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<<year<<"-"; 
if(month<10) 

cout<<"0"<<month; 

else 

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

else 

cout<<day;

cout<<" "<<week[dayofweek]<<endl; 

return 0; 
 }

最后

以上就是奋斗彩虹为你收集整理的从2000年一月一日算,给一个天数,算出它是多少年月日 星期几的全部内容,希望文章能够帮你解决从2000年一月一日算,给一个天数,算出它是多少年月日 星期几所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部