只用time模块,检查y年中有多少个星期w,并且返回所有符合日期
程序员文章站
2022-05-20 17:24:53
只用time模块实现查询y年中有几个星期w:说一下我的思路吧1.设置时间转时间戳的函数模块2.每天差246060个10位时间戳,使用for x in range(y年时间戳:y+1年的时间戳;每天的时间戳差)循环遍历每天3.检查循环的每一天是不是 需要的星期w 如果是,就把他转为年-月-日的格式,添加到待输出列表首先导入模块import time既然需要用户提供一个年份y:那么首先创建一个年份的1月1日转时间戳的代码如下def timep(year): """时间转实践...
只用time模块实现查询y年中有几个星期w:
说一下我的思路吧
1. 设置时间转时间戳的函数模块
2. 每天差246060个10位时间戳,使用for x in range(y年时间戳:y+1年的时间戳;每天的时间戳差)循环遍历每天
3. 检查循环的每一天是不是 需要的星期w 如果是,就把他转为年-月-日的格式,添加到待输出列表
首先导入模块
import time
既然需要用户提供一个年份y:
那么首先创建一个年份的1月1日转时间戳的
代码如下
def timep(year):
"""时间转实践戳"""
td = str(year)+'-01-01'#创建一个年份+01月1日
td = time.strptime(td, '%Y-%m-%d')#把上面创建好的格式,通过time.strptime()格式为元组
td = time.mktime(td)#把上面的元组,通过time.mktime()格式为时间戳
return td#返回时间戳
再创建一个时间戳转时间的模块,用于以后的输出
def timet(timep):
"""时间戳转时间"""
timep = time.localtime(timep)#时间戳转为元组时间
td = time.strftime('%Y-%m-%d', timep)#使用time.strftime()格式化日期
return td#返回日期
我们需要一个判断当前时间是星期几的模块
def years(timep):
"""时间戳计算星期几"""
timep = time.localtime(timep) # 时间戳转为元组时间
return timep.tm_wday#返回星期几
好了,有了这三个模块,来写主模块吧
def jisuan(year_i, w):
"""主模块,year_1为年,w为需要检测的星期w"""
year_i = int(year_i) # 转换为整数,提高容错率
w = int(w) # 转换为整数,提高容错率
week = [] # 创建空列表
year = int(timep(year_i)) # 返回用户输入那年的时间戳,因为时间戳是浮点数,转为整数
year1 = int(timep(year_i+1)) # 返回用户输入+1年的时间戳,因为时间戳是浮点数,转为整数
for a in range(year, year1+1, 24*60*60): # 循环每一天,year和year是个时间戳,给year1加一秒防止差一
if years(a) == w: # 判断是不是星期w
week.append(timet(a)) # 添加的列表
return {'年': year_i, '星期': w, '次数': len(week), '列表': week} # 嗯,,就先返回为字典吧
剩下的代码,嗯,只需要调用主模块就好啦,需要注意的是星期日的w=0哦!!因为时间戳是1970年之后的,所以,只能查看1970以后的,太远的也不行.
if __name__ == "__main__":
print(jisuan(input('请输入一个年份(1970-):'),input('星期几(0-6),0代表星期天:')))
完整代码:
import time
def timep(year):
"""时间转实践戳"""
td = str(year)+'-01-01' # 创建一个年份+01月1日
td = time.strptime(td, '%Y-%m-%d') # 把上面创建好的格式,通过time.strptime()格式为元组
td = time.mktime(td) # 把上面的元组,通过time.mktime()格式为时间戳
return td # 返回时间戳
def timet(timep):
"""时间戳转时间"""
timep = time.localtime(timep) # 时间戳转为元组时间
td = time.strftime('%Y-%m-%d', timep) # 使用time.strftime()格式化日期
return td # 返回日期
def years(timep):
"""时间戳计算星期几"""
timep = time.localtime(timep) # 时间戳转为元组时间
return timep.tm_wday # 返回星期几
def jisuan(year_i, w):
"""主模块,year_1为年,w为需要检测的星期w"""
year_i = int(year_i) # 转换为整数,提高容错率
w = int(w) # 转换为整数,提高容错率
week = [] # 创建空列表
year = int(timep(year_i)) # 返回用户输入那年的时间戳,因为时间戳是浮点数,转为整数
year1 = int(timep(year_i+1)) # 返回用户输入+1年的时间戳,因为时间戳是浮点数,转为整数
for a in range(year, year1+1, 24*60*60): # 循环每一天,year和year是个时间戳,给year1加一秒防止差一
if years(a) == w: # 判断是不是星期w
week.append(timet(a)) # 添加的列表
return {'年': year_i, '星期': w, '次数': len(week), '列表': week} # 嗯,,就先返回为字典吧
if __name__ == "__main__":
print(jisuan(input('请输入一个年份(1970-):'), input('星期几(0-6),0代表星期天:')))
最后,如果帮助到了您,麻烦点下关注啦…
本文地址:https://blog.csdn.net/xrydrhlt66/article/details/107578844