7-4 疯狂星期四!!!!!
题目是这样的:
已知2022年10月11日是星期二
现在给定你一个日期,你需要计算当天是星期几。
输入格式:
一行三个整数M,D,Y,表示所求日期为:M月D日,Y年
1600≤Y≤2400,保证输入日期均为合法日期。
输出格式:
输出一个数字,表示当前是星期几。
如果星期天,则输出0。
输入样例1:
8 17 1926
输出样例1:
2
输入样例2:
2 29 1904
输出样例2:
1
看完,做何感想?对于初学者来说,是比较麻烦的。但是要克服畏难心理,这是一个程序员所必须具有的能力。
当然,各位肯定可以注意到,要注意平年闰年的问题。
我们可以写两个数组,分别用于存储平年的每个月各自的天数与闰年每个月各自的天数
int ping[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
int ren[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };
这样方便天数的累加
之后,我们把给到我们的数据分成3类来处理
1、在这个日期之前
2、在这个日期之后
#include <iostream>
#include <cmath>
using namespace std;
bool judge(int n)
{
if ((n % 4 == 0 && n % 100 != 0) || (n % 400 == 0))
{
return 1;
}
return 0;
}
int main()
{
int days = 0;
int month, day, year;
cin >> month >> day >> year;
int ping[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
int ren[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };
if (year >= 2022)
{
for (int i = 2022; i < year; i += 1) // 这样的话,多加了2022/10/11之前的天数,少加了所给日期的月与天
{
if (judge(i))
{
days += 366;
}
else
{
days += 365;
}
}
// 先减去之前的天数:
for (int i = 1; i < 10; i += 1)
{
days -= ping[i - 1];
}
days -= 11;
// 再加上所给日期的天数与月数
// 注意所给年的平年润年
if (judge(year))
{
for (int i = 1; i < month; i += 1)
{
days += ren[i - 1];
}
days += day;
}
else
{
for (int i = 1; i < month; i += 1)
{
days += ping[i - 1];
}
days += day;
}
// 这样就这样了
}
else
{
for (int i = year; i < month; i += 1) // 这样就多加了所给的月数与日数。这样就少加了10/11
{
if (judge(i))
{
days += 366;
}
else
{
days += 365;
}
}
// 之后再减去所给的日与月
if (judge(year))
{
for (int i = 1; i < month; i += 1)
{
days -= ren[i - 1];
}
days -= day;
}
else
{
for (int i = 1; i < month; i += 1)
{
days -= ping[i - 1];
}
days -= day;
}
// 之后再加上10/11;
for (int i = 1; i < 10; i += 1)
{
days += ping[i - 1];
}
days += day;
}
// 这时候,就开始算了
int x;
x = days % 7;
int real;
if (2022 * 100 + 10 * 10 + 11 > year * 100 + month * 10 + day)
{
real = x + 2;
}
else
{
real == 9 - x;
}
cout << real;
return 0;
}
7-4 疯狂星期四!!!!!相关推荐
- 马斯克凌晨一点半晒“代码审查”现场,编排他的段子比疯狂星期四还多
梦晨 Pine 发自 凹非寺 来源|AI新媒体量子位( ID: QbitAI) 每一个真正会写代码的人,请在下午2点到总部10层报到. 马斯克在周五向推特工程团队(或者说剩下的部分)发出召集令. 他要 ...
- KFC疯狂星期四V50用js代码表示
KFC疯狂星期四V50用js代码表示 let arr = [ [1, 9, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22], [2, 8 ...
- 疯狂星期四;python摸鱼小游戏,重温童年经典
前言 今天是6.1号儿童节,刚好也是星期四,疯狂星期四+六一儿童节岂不是得喂我111(50+61)
- 讨论度超20亿,肯德基疯狂星期四是如何出圈的?
每到周四,网上就会出现一股"神秘力量"--今天是星期四,V我50,请我吃肯德基. 肯德基疯狂星期四能有多火? 目前,#肯德基疯狂星期四#话题阅读量超23亿次,参与讨论次数超600万 ...
- 疯狂星期四,抢980元超值美食卡,尊享超级特价!
- 实时的软件生成 —— Prompt 编程打通低代码的最后一公里?
PS:这也是一篇畅想,虽然经过了一番试验,依旧有一些不足,但是大体上站得住脚. 传统的软件生成方式需要程序员编写大量的代码,然后进行测试.发布等一系列繁琐的流程.而实时生成技术则是借助人工智能技术,让 ...
- 《王者荣耀》突然停运?看到官方公告直接傻眼……
说起来大侠也算是<王者荣耀>的资深玩家了. 看咱这主页就知道,平时没少挨揍. 除了玩游戏之外,大侠还有一点小小的收集控,看到限定皮肤就有点走不动道的那种. 如果按照原来的节奏,王者一个月也 ...
- 克服浮躁_如果您从事技术工作,那就克服自己
克服浮躁 重点(Top highlight) Working in tech can make you an asshole. 从事技术工作会让您混蛋. I work in tech. I have ...
- Web3+品牌的大杀器:DAO如何实现对传统品牌彻底的降维打击
01 DAO是品牌的大杀器 在我之前的文章就有预测过,Web3与品牌的结合只有两条路径,一个是Web3会自生长原生品牌发起向现实中的品牌扩大共识,另外一个是Web3是只属于现实中具有某些特性的品牌的沃 ...
- 2022纪中游记(进行中)
Day -1 听说林展扁他老弟也是我们学校信奥的,惊了. 而且还说要来,准备去社牛看一眼. Day 0 麻了想到要来一个月就麻了. 然后临进去前跑出去吃了顿好的(什么最后的晚餐),虽然纪中外面也没什么 ...
最新文章
- word分散对齐调整宽度_Word中文字很难对齐?有了这4个方法,2秒可对齐Word中所有文字...
- Codeforces Round #601 (Div. 2)D. Feeding Chicken,二维压一维,几何平面的分配
- Java之Object类与instanceof关键字
- HTML禁用Flash文件右键
- C语言试题二十九之编写函数int function(int lim,int aa[max])求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。
- 2021年终总结2022未来展望——人生天地之间,若白驹过隙,忽然而已
- python列表是顺序表还是链表_Python数据结构与算法(链表使用详解)
- 数据文件shrink_SQL Server中的Shrink TempDB数据库概述
- configure: error: MySQL library not found ,Not found mysqlclient library
- oracledatabase11gr2怎么打开_oracle database 11gR2 + forms and reports 11g安装教程
- C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号)
- linux有线网设置方法,有线网络使用教程
- 高盛报告:未来5-10年区块链将被广泛应用【附下载】
- FastDFS Destination image dimensions must not be less than 0 pixels
- Hadoop 推测执行
- 使用云服务器搭建Linux学习环境
- 【电子学会】2020年09月图形化二级 -- 货运飞船
- 我的世界手机版怎么增加服务器,我的世界手机版服务器怎么创建
- 学生台灯用led灯好还是荧光灯好?推荐几款高品质的LED灯
- 实验10-9 十进制转换二进制 (15分)