date1=input().split() date2=input().split() mon=[0,31,28,31,30,31,30,31,31,30,31,30,31] #下标从0开始,因此加0以让下标对齐 def run(x): if (x%400==0)or(x%4==0 and x%100!=0): return True else: return False def f(x): if run(x): mon[2]=29 return mon else: return mon a=0 daysum=0 if date1[0]==date2[0]: if f(int(date1[0])): if date1[1]==date2[1]: daysum+=int(date2[2])-int(date1[2]) else: for i in range(int(date1[1])+1,int(date2[1])): a+=mon[i] daysum+=int(date2[2])+mon[int(date1[1])]-int(date1[2])+a elif date1[0]!=date2[0]: if f(int(date1[0]))or f(int(date2[0])): for i in range(int(date1[1])+1,13): a+=mon[i] day1=mon[int(date1[1])]-int(date1[2])+a for j in range(1,int(date2[1])): a+=mon[j] day2=a+int(date2[2]) daysum+=day1+day2+1 week=daysum//7+1 day=daysum%7+1 print("%d %d"%(week,day))
时间: 2024-04-28 16:20:51 浏览: 83
react-split-date-input:可重用的分割日期输入 React 组件
这段代码的作用是计算两个日期之间相差的周数和天数。代码的输入是两个日期,格式为 yyyy mm dd,例如 2022 01 01。输出是一个包含两个整数的元组,第一个整数表示相差的周数,第二个整数表示相差的天数。
代码的实现过程是先定义一个列表 mon,保存每个月的天数。然后定义了两个函数,run(x) 用于判断年份 x 是否为闰年,f(x) 用于返回年份 x 对应的月份天数列表。
接下来根据输入的日期计算相差的天数 daysum。如果两个日期的年份相同,计算它们之间的天数。如果年份不同,则分别计算起始日期所在年份的剩余天数和结束日期所在年份的已过天数,再加上中间年份的总天数。
最后根据相差的天数计算相差的周数和天数,其中周数是天数整除 7 的结果加 1,天数是天数除以 7 的余数加 1。
阅读全文