星期一

整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一?(不要告诉我你不知道今天是星期几)

我们可能不知道20世纪中的某一天是星期几,但我们应该知道今天是星期几。 比如说今天是2022年10月19日星期三,我们只需要反推到二十多年前的2000年12月31日是星期几就科研进行计算了。

#  已知2022年为平年2月28天,所以可知10月19日为这一年的第292天,所以在291天前为本年的1月1日
n = 291
while n > 7:for i in range(1, 1000):n = n - 7if n < 7:break
print(n)   #  即2022年1月1日的4天后为星期三即1月5日为星期三
week_2022_1_1 = 7 + 3 - 4  #  用来计算星期几的,减出来为负数就在前面加个7答案就是星期几
print(week_2022_1_1)
#  所以说2022年的1月1日是星期六,2021年12月31日是星期五
day_to_2000_12_31 = 366 * 5 + 365 * 16
print(day_to_2000_12_31)
# 即在2021年12月31日的7670天前是2000年12月31日
n = 7670
while n > 7:for i in range(1, 1000):n = n - 7if n < 7:break
print(n)
#  21年前的2000年12月31日的5天后为星期五,所以2000年12月31日是星期日
day_to_1901_1_1 = 366 * 25 + 365 * 75 - 1 # 这里为什么要减一天?
print(day_to_1901_1_1)
# 即在2000年12月31日的36524天前是1901年1月1日
n = 36524
while n > 7:for i in range(1, 10000):n = n - 7if n < 7:break
print(n)
#  1901年1月1日的5天后为星期日,所以1901年1月1日是星期二

上面代码中的

n = 291
while n > 7:for i in range(1, 1000):n = n - 7if n < 7:break
print(n)

这些部分都可以直接写成n % 7效果是一样的

还有就是day_to_1901_1_1 = 366 * 25 + 365 * 75 - 1 # 这里为什么要减一天?

这是因为1900年12月31日才是2000年12月31日的整整一百年前,而1901年1月1日还少一天,注意我这里算的是多少天以前,而不是这段时间总共有多少天。如果算1901年1月1日到2000年12月31日总共有多少天那就是整整100年,不需要减1。

上面的代码块是我一 步一步推的,当然可以直接得到2000年12月31日是星期几然后再进行计算,我们最终要得到的是20世纪有多少个星期一,先得到1901年1月1日到2000年12月31日有多少个7天,剩下的再做计算即可,代码入如下:

print(day_to_1901_1_1 // 7, day_to_1901_1_1 % 7)
#  已知1901年1月6日为星期日, 所以五天前的1901年1月1日为星期二
#  所以正确答案就是(day_to_1901_1_1 // 7)即5217个星期一, 不用管后面的余数5

上面的解法思路非常简单,当然看起来有点麻烦,我们可以将其简单化一点,如下代码:

day_num = 0
for year in range(1901, 2001):if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):day_num += 366else:day_num += 365
day_before = day_num - 1  # 这里为什么减1如我上文所说。
# 现在只需要1901年1月1日是星期几,或是2000年12月31日是星期几就可以算出共有多少个星期一
# 这里我们只知道今天是2022年10月19日星期三,所以需要去往回推算
# 如上算出
#  已知2022年为平年2月28天,所以可知10月19日为这一年的第292天,所以在291天前为本年的1月1日
n = 291
day_to_2000_12_31 = 366 * 5 + 365 * 16 + n + 1  # 这里+1是因为整年是到2021年12月31日为21年少1月1日1天
# 即在2022年10月19日的7962天前是2000年12月31日
n = 7962
yu = n % 7
week_2000_12_31 = 3 - yu + 7yu_result = day_before % 7
week_1901_1_1 = 7 - yu_result
#  所以1901年1月1日为星期二
sumMon = day_before // 7
print(sumMon)

Python蓝桥杯基础之星期一相关推荐

  1. Python 蓝桥杯试题 基础练习 特殊回文数

    Python 蓝桥杯试题 基础练习 特殊回文数 问题描述: 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于 ...

  2. Python 蓝桥杯试题 基础练习 数列排序

    Python 蓝桥杯试题 基础练习 数列排序 题目描述: 问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列.1<=n<=200 输入格式 第一行为一个整数n. 第二行包含n ...

  3. 蓝桥杯 基础练习 分解质因数 python语言

    蓝桥杯 基础练习 分解质因数 python语言 描述 求出区间[a,b]中所有整数的质因数分解. 输入 输入描述: 输入两个整数a,b. 输入样例: 3 10 输出 输出描述: 每行输出一个数的分解, ...

  4. 蓝桥杯 基础练习 01字串 C/C++/Java/Python描述

    蓝桥杯 基础练习 01字串 C/C++/Java/Python描述   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博 ...

  5. 蓝桥杯 基础练习全解 答案+解析 共17题 python

    关键字 A+B问题,数列排序,十六进制转八进制,十六进制转十进制,十进制转十六进制,特殊回文数,回文数,特殊的数字,杨辉三角形,查找整数,数列特征,字母图形,01字串,闰年判断,斐波那契数列,圆的面积 ...

  6. 蓝桥杯基础练习 Python实现字母图形

    蓝桥杯基础练习 Python实现字母图形 问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7 ...

  7. Python 蓝桥杯试题 基础练习 十六进制转八进制

    Python 蓝桥杯试题 基础练习 十六进制转八进制 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行, ...

  8. Python 蓝桥杯试题 基础练习 字母图形

    Python 蓝桥杯试题 基础练习 字母图形 问题描述: 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个 ...

  9. 蓝桥杯基础练习---特殊数字

    蓝桥杯基础练习---特殊数字 特殊的数字 该题目实现程序: 特殊的数字 问题描述: 153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1的3次方+5的3次方+3的3次方=1+125+27 ...

最新文章

  1. Python+selenium自动化测试:报错:TypeError: 'WebElement' object is not iterable
  2. ddos攻击python_Python基于http的ddos攻击代码
  3. js动态载入css文件,原生JS动态加载JS、CSS文件及代码脚本(示例代码)
  4. java怎么弄redis,java怎么使用redis
  5. Delphi 精选文章地址
  6. 网络通信数据处理过程
  7. python爬虫之百度贴吧
  8. MPQ Storm库 源码分析 一
  9. 计算机科学与技术导论 网站,计算机科学与技术导论
  10. Spring Boot整合mybatis报错Invalid bound statement (not found)
  11. python查看保留字_Python 关键字(保留字)一览表,含查询方法
  12. 网易,这次你让粉丝们失望了
  13. 再论凭中学数学常识发现中学数学一系列重大错误——数列最起码常识让5千年都无人能识的自然数一下子暴露出来
  14. 网游服务器维护费巨大,全网首例!玩家氪金金额巨大导致服务器瘫痪,官方单独安排客服!...
  15. 原来将Excel表格转换成应用程序如此简单
  16. IMP-00017: following statement failed with ORACLE error 20005:(表统计信息被锁)
  17. [N1BOOK PARTofPWN] ROP本地
  18. “兼并”还是“合作” 宏碁方正各怀鬼胎
  19. 【毕业设计】深度学习手势识别检测系统 - python
  20. 2019年天猫年货节淘客文案(全网节日淘客文案通用最新版持续更新)

热门文章

  1. 三层架构和mvc的区别
  2. Python采集某宝数据,轻松解决这个价值千元的外包项目
  3. 数学在计算机专业中的应用,高等数学在计算机专业教学中的应用
  4. Java两种动态代理JDK动态代理和CGLIB动态代理
  5. CCSP 云安全认证-法律与合规风险
  6. EXCHANGE2007 UM功能体验
  7. 计算机组成原理时序部件实验,计算机组成原理课设计报告时序发生器.doc
  8. macOS 无法验证此App不包含恶意软件
  9. php mysql 抽奖_jQuery+PHP+Mysql实现抽奖程序
  10. ubuntu /home 分区压缩