从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年一月一日算,给一个天数,算出它是多少年月日 星期几相关推荐
- 元芳,你知道公元一年一月一日是星期几吗
公元一年一月一日为星期一.这是标准定义,至于为什么这么定义,你可以去考证一下. 我们现在采用的立法是罗马教皇格里高利十三世修订"儒略历"所成的"格里历",该历法 ...
- 给定一个日期,算出上周五日期
给定一个日期,算出上周五日期 DateTime dt=new DateTime(); for(double loop=0;loop<7;loop++) { dt=DateTi ...
- python写一个表白程序_用Python写一个能算出自己年龄的小程序
用Python写一个能算出自己年龄的小程序. 其实我连我今年多少岁都不知道,最近看到了python的datetime库里面有很多好用的方法,于是就写了这样一个程序作为练习,然后又写了这样一篇文章来梳理 ...
- Java黑皮书课后题第6章:*6.16(一年的天数)使用下面的方法体编写一个方法,返回一年的天数。编写一个测试程序,显示从2000年到2020年间每年的天数
*6.16(一年的天数)使用下面的方法体编写一个方法,返回一年的天数.编写一个测试程序,显示从2000年到2020年间每年的天数 题目 题目描述 破题 本题代码 运行示例 题目 题目描述 *6.16( ...
- 2017 省赛选拨 想打架吗?算我一个!所有人,都过来!(3) 递推 斐波拉数列的应用...
想打架吗?算我一个!所有人,都过来!(3) Submit Page Summary Time Limit: 2 Sec Memory Limit: 128 Mb Submi ...
- 字数统计,一个英文字母算一个字,一个汉字算一个字,一个符号算一个字
//============================================================================= // // 字数统计,一个英文字母算一个 ...
- 一日一签免费算卦_一日一签app免费算卦
一日一签app是一款在线抽签算卦的软件,用户在使用软件的时候将直接感受到软件操作的便捷性,这时候还将感受到上面测试的丰富感,在上面可以直接进行寺庙的灵签抽取操作,将直接进行观音相关灵签以及黄大仙相关灵 ...
- 如何用python计算年龄_用Python写一个能算出自己年龄的小程序
用Python写一个能算出自己年龄的小程序. 其实我连我今年多少岁都不知道,最近看到了python的datetime库里面有很多好用的方法,于是就写了这样一个程序作为练习,然后又写了这样一篇文章来梳理 ...
- 计算当前时间距离元年一月一日的总天数,并显示现在是星期几
package create; import java.time.Month; import java.util.Scanner; public class GetTime{ public stati ...
最新文章
- bitset HDU6515 Coding Problem
- Transformer大升级!谷歌、OpenAI联合推出分层模型,刷榜ImageNet32刷新SOTA
- check_mk通用应用检测插件
- Oracle安装ORA-12154和ORA-12169问题的解决
- OSM OpenStreetMap 获取城市路网数据及转为ESRI shp数据的方法
- 应用指定显示到副屏_广电演播领域与舞台LED租赁显示屏如何去选择LED小间距屏...
- boost::mpl::advance相关用法的测试程序
- vue created 生命周期
- 深度学习去燥学习编码_请学习编码
- 物联网卡为什么会这么火,主要有哪些优势?
- C#编写WINNT服务,随便解决安卓开发遇到的5037被众多程序无节操占用的问题
- git整合分支的两种方式 merge 和 rebase
- 科技公司都是如何应对 COVID-19?
- 异常信息:Unable to update index for aliyun|http://maven.aliyun.com/nexus/content/groups/public/ 解决方法
- 企业微信商户号是什么?如何开通?
- 使用SHC命令工具加密Shell脚本
- ffmpeg区域范围切割视频
- IE5的兼容问题——记录给自己看的
- 计算机重启后打印机无法连接不上,共享打印机电脑重启就无法连接怎么办
- Windows 10 - 安装 Mysql - zip压缩包详细安装教程