输入某年某月某日,判断这一天是这一年的第几天?(Python)
输入某年某月某日,判断这一天是这一年的第几天?
当时老师让我们做这道题是想锻炼我们的“选择循环方法”,所以用选择循环方法:
第一种方法解析:
1,3,5,7,8,10,12三十一天永不差,其余是30天,2月是28天(闰年是29天)
先假设每一个月都是30天,然后再计算有几个31天和28(或29天)的月份
1-2月是一个计算段,3-7是一个计算段,8-12是一个计算段
代码
date = input('输入某年某月某日,格式为:****-**-**,小于10请写0*:')
# 使用切片截取年,月,日
year = int(date[0:4])
month = int(date[5:7])
day = int(date[8:])
# 判断是否是闰年,并为每一月赋值
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:feb = 29
else:feb = 28
# 1-2月是一个计算段,3-7是一个计算段,8-12是一个计算段
result = 0
if feb == 29:if 1 <= month <= 2:result = (month - 1) * 30 + day + int(month / 2)elif 2 < month <= 7:result = (month - 1) * 30 + day + int(month / 2) - 1elif 12 >= month > 7:result = 213 + (month - 8) * 30 + day + int((month - 7) / 2)
elif feb == 28:if 1 <= month <= 2:result = (month - 1) * 30 + day + int(month / 2)if 2 < month <= 7:result = (month - 1) * 30 + day + int(month / 2) - 2elif 12 >= month > 7:result = 212 + (month - 8) * 30 + day + int((month - 7) / 2)print('{}-{}-{}是一年中的第{}天'.format(year, month, day, result))
上面是我自己写的代码,然后我查阅了一下其他人写的,顿时发现我写的好low
第二种方法解析
一年12个月份放入列表中,其中二月特殊表示(闰年29天,其他28天),
代码
示例一:
有些人运行示例一可能报错,但是我在我的电脑上调试确实是没有问题的,可能是Python版本的原因,我的运行环境是Python3.10,
date = input('输入某年某月某日,格式为:****-**-**,小于10请写0*:')
# 使用切片截取年,月,日
year = int(date[0:4])
month = int(date[5:7])
day = int(date[8:])
# 判断是否是闰年,并为每一月赋值
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:feb = 29
else:feb = 28
date1 = [31, feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
res = 0
i = 0
for i in date1[0:month - 1]:res = res + i
res += day
print('{}-{}-{}是一年中的第{}天'.format(year, month, day, res))
示例二
import re
import calendar
# 定义一个月份的列表,2月暂时按照28天,如果是闰年就加一,month[0]无意义,只是为了让month[1]代表1月
month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
ri_qi = input("请输入日期:yyyy-mm-dd")
# 正则表达式提取年月日
ri_qi_result = re.search(r"(?P<y>\d+).(?P<m>\d+).(?P<d>\d+)", ri_qi)
y_ = int(ri_qi_result.group("y")) # 年
m_ = int(ri_qi_result.group("m")) # 月
d_ = int(ri_qi_result.group("d")) # 日
if calendar.isleap(y_):month[2] = 29
else:month[2] = 28
day = d_
for i in range(1,m_):day += month[i]
print("{}-{}-{}是第{}天".format(y_,m_,d_,day))
第三种方法,如果配合Python中的 calendar 标准库,可以把判断闰年的一长串代码直接用isleap()函数代替
代码
import calendarif calendar.isleap(year):feb = 29
else:feb = 28
date2 = [31, feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
res = 0
i = 0
for i in date2[0:month-1]:res = res + i
res += day
print('{}-{}-{}是一年中的第{}天'.format(year, month, day, res))
结果
输入某年某月某日,判断这一天是这一年的第几天?(Python)相关推荐
- python输入某年某月某日判断这是第几天_Python编程实现输入某年某月某日计算出这一天是该年第几天的方法...
本文实例讲述了Python编程实现输入某年某月某日计算出这一天是该年第几天的方法.分享给大家供大家参考,具体如下: #基于 Python3 一种做法: def is_leap_year(year): ...
- java那一年出来的_输入某年某月某日 判断其是那一年的第多少天
[java]代码库Scanner scan = new Scanner(System. in); System. out .print("请输入年:" ); int year = ...
- 代码实现:输入某年某月某日,判断这一天是这一年的第几天?
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...
- 输入某年某月某日,Java判断这一天是这一年的第几天?
输入某年某月某日,判断这一天是这一年的第几天? package p3;一.class judgedaypublic class judgeday {public static void main(St ...
- 【C语言】题目:输入某年某月某日,判断这一天是这一年的第几天?
题目:输入某年某月某日,判断这一天是这一年的第几天? 题目分析: 设日期为:A年X月Y日 1.判断A年是否为闰年(确定是2月份的天数) 2.判断这是X月,加上前(X-1)月的总天数Z 3.判断这是Y日 ...
- 第四题:输入某年某月某日,判断这一天是这一年的第几天?
#输入某年某月某日,判断这一天是这一年的第几天? '''思路:首先年月日是分着输入还是一块输入,想到如果一块输入可能还需要分割分别找到年月日 所以还是分着输入比较好:接着考虑计算天数其实就是往常月份的 ...
- Java输入某年某月某日,判断这一天是这一年的第几天?
分析:大家都知道,每年的总共日期,要么就是365天,要么就是366天,具体是取决于闰年还是平年,更确切的说就是每年二月是28天还是29天,归结到这个问题,有一个关键的认识点,就是求解这一年是闰年(36 ...
- python求输入某年某月某日,判断这一天是这一年的第几天
方法一: """ 3.输入某年某月某日,判断这一天是这一年的第几天 """ year = int(input("请输入年分:&qu ...
- C语言例题:输入某年某月某日,判断这一天是这一年的第几天?
题目:输入某年某月某日,判断这一天是这一年的第几天? 参考程序如下: #include<stdio.h>void main() {int year, month, day,sum,leap ...
- 输入某年某月某日,判断这一天是这一年的第几天?(JS实现)
输入某年某月某日,判断这一天是这一年的第几天?(JS实现) 想知道今天是一年中的第几天吗,我知道你不想,不想也得想,跟着我一起看看这个功能如何利用Javascript实现.首先一个简单的思路就是获取当 ...
最新文章
- The Annotated Transformer
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-02-基于Python的卷积运算
- 【无人机】欧盟发布无人机新规
- 返回路径平面上的间隙_返回电流及其与通孔的关系
- 我又踩坑了!如何为 HttpClient 请求设置 Content-Type 标头?
- 解决Linux下ArcGIS Server的Tomcat不稳定问题,nginx配置反向代理时的一个小问题
- 编译OpenCV:precomp.hpp:60:37: fatal error: dynlink_nvcuvid.h
- mysql数据库 存储过程_Mysql数据库-存储过程
- MAC将latex等大软件安装到移动硬盘
- java中求数组中最大值
- C语言中char字符为0时的情况
- Linux 解决无法清空回收站问题
- 网恋中在拿谁的情感玩游戏
- JS拉起支付宝,并加好友
- Android uart driver
- 天猫商品详情接口,天猫商品优惠券接口,天猫api接口,天猫价格监控接口,天猫比价接口,品牌维权接口,天猫销量api接口,接口代码可对接数据分析业务,品牌维权,比价业务,行业分析业务接口代码分享
- PointPillars点云检测在OpenPCDet推理代码详解
- dnf加物理攻击的卡片有哪些_dnf加物理攻击的宝珠有哪些
- 第二十九章 SQL函数 COALESCE
- Leetcode1189. “气球” 的最大数量(C++思路与代码)
热门文章
- pdf编辑软件哪个好 如何在pdf上修改
- 让机器“读懂”放射学报告
- ATTCK(对抗性战术,技术和公共知识库)
- 客户端渲染(CSR)和服务端渲染(SSR)差别
- 潭州学院html学习(day10)
- Python流程控制下:循环语句
- 我的理想计算机软件设计师,我的理想设计师
- 数字逻辑综合工具实践-DC-10——CDC约束
- 错误:The ‘pycocotools>=2.0‘ distribution was not found and is required by the application
- Grandpa's Estate POJ - 1228(凸包极角序改写)