time
此内容尚不支持你的语言。
from datetime import date, datetime, timedelta# 计算两个日期之间的天数start_date = date(2025, 4, 1)end_date = date(2025, 4, 17)delta = end_date - start_dateprint(delta) # 输出: 16 days, 0:00:00print(delta.days) # 输出: 162000年的1月1日, 是那一年的第1天
那么, 2000年5月4日, 是那一年的第几天
from datetime import dateprint((date(2000, 5, 4)-date(2000, 1, 1)).days+1) # 输出: 125整个20世纪 (1901-01-01 ~ 2000-12-31) 中, 星期一的数量
from datetime import date, timedeltat0 = date(1901, 1, 1)t1 = date(2000, 12, 31)res = 0while t0 <= t1: if t0.weekday() == 0: # 0=Monday, 1=Tuesday, ..., 6=Sunday res += 1 t0 += timedelta(days=1)print(res) # 输出: 5217小蓝特别喜欢2, 今年是公元2020年, 他特别高校, 因为每天都可以看到2
如果日历中只显示年月日, 请问从公元 1900年1月1日 到公元 9999年12月31日, 一共有多少天日历上包含2
from datetime import date, timedeltat0 = date(1900, 1, 1)t1 = date(9999, 12, 31)delta = timedelta(days=1)res = 0while t0 < t1: if '2' in str(t0): res += 1 t0 += deltaprint(res+1) # 输出: 1994240小蓝发现了一个神奇的闹钟,从纪元时间(1970 年 1 月 1 日 00:00:00)开始,每经过 x 分钟,这个闹钟便会触发一次闹铃 (纪元时间也会响铃)。这引起了小蓝的兴趣,他想要好好研究下这个闹钟。
对于给出的任意一个格式为 уууу-MM-ddHH:mm:ss 的时间,小蓝想要知道在这个时间点之前 (包含这个时间点) 的最近的一次闹铃时间是哪个时间?
注意,你不必考虑时区问题。
输入格式
输入的第一行包含一个整数 T,表示每次输入包含 T 组数据。
接下来依次描述 T 组数据。
每组数据一行,包含一个时间(格式为 уууу-MM-ddHH:mm:ss)和一个整数 x,其中 x 表示闹铃时间间隔(单位为分钟)。
输出格式
输出 T 行,每行包含一个时间(格式为 уууу-MM-ddHH:mm:ss),依次表示每组数据的答案。
样例输入
22016-09-07 18:24:33 102037-01-05 01:40:43 30样例输出
2016-09-07 18:20:002037-01-05 01:30:00评测用例规模与约定
对于所有评测用例,1≤T≤10,1≤x≤1000,保证所有时间格式都是合法的。
import sysinput = lambda: sys.stdin.readline().strip()from datetime import date, datetime, timedelta
t0 = datetime(1970, 1, 1, 0, 0, 0) # 纪元时间format = '%Y-%m-%d %H:%M:%S'def s(time_str, x): # 解析时间字符串 dt = datetime.strptime(time_str, format) # 计算最近的闹铃时间 delta = timedelta(minutes=x) # 计算最近的闹铃时间 last_alarm_time = dt - (dt - t0) % delta return last_alarm_time.strftime(format)
n = int(input())for _ in range(n): time_str1, time_str2, x = input().split() time_str = time_str1 + ' ' + time_str2 print(s(time_str, int(x)))