首页 > 代码库 > 【Time系列四】查询当月日历
【Time系列四】查询当月日历
荒废了两个星期没学java了,今天一心想突破"日历查询"这个小程序。无奈天资愚钝,想了一个上午。
最后卡在了日期排列的问题上,只好去参考下别人的代码。
从简单的开始,想想既然是查询日历。打开下手机,大体是这种模样。那么我们就按照这种格式,来
设计程序吧。
首先,之前讲到的,用(%)求余符号求星期的。今天是10月30号—周日,那么如何求出若干天后是星
期几呢? 思路就是,我们把周日定为0,一天后的周一自然就是1,依此类推,周六就是六啦。那么13
天后,就是(0+13) % 7 = 5, 周五哦......
1 # coding: utf-8 2 3 print u"今天是周日!" 4 query = raw_input(">>> ") 5 6 weeks = { 7 0: u"周日", 8 1: u"周一", 9 2: u"周二", 10 3: u"周三", 11 4: u"周四", 12 5: u"周五", 13 6: u"周六", 14 } 15 16 print query + u"天后是" + weeks[(int(query) + 0) % 7]
------------------------------------------------------------------------------------------------------------------------------------------------------------
现在就利用之前做过的自动关机脚本的原理,以1970年1月1日午夜零点,也就是周四为基点。来算出从它
到现在总共过了多少秒,然后再转化为总共多少天,再算出若干天之后是星期几。
【注: 2016年10月31号是周一】
1 # coding: utf-8 2 3 import time 4 import datetime 5 #--------------------------------------------# 6 # 把当前的时间转化为指定格式 "年/月/日 时:分:秒" # 7 # 把当前时间转化为datetime.datetime的类型 # 8 # 得出从1970年元旦0点至今的总秒数 # 9 # 再将总秒数转化为总天数 # 10 #---------------------------------------------# 11 currTime = time.strftime("%Y/%m/%d %H:%M:%S") 12 dt = datetime.datetime.strptime(currTime, "%Y/%m/%d %H:%M:%S") 13 currSeconds = time.mktime(dt.timetuple()) 14 currDays = currSeconds / (3600 * 24) 15 16 weeks = { 17 0: u"周日", 18 1: u"周一", 19 2: u"周二", 20 3: u"周三", 21 4: u"周四", 22 5: u"周五", 23 6: u"周六" 24 } 25 26 print weeks[int((currDays + 4) % 7)]
1 # coding: utf-8 2 3 import time 4 import datetime 5 6 day = time.strftime("%d") 7 8 #--------------------------------------------# 9 # 当前时间 # 10 # 把当前时间转化为datetime.datetime对象 # 11 # 自1970年1月1日以来到今天总共过了多少秒 # 12 # 直至今天总共过了多少天 # 13 # 直至当月的1号总共过了多少天 # 14 #--------------------------------------------# 15 currTime = time.strftime("%Y/%m/%d %H:%M:%S") 16 dt = datetime.datetime.strptime(currTime, "%Y/%m/%d %H:%M:%S") 17 totalSeconds = time.mktime(dt.timetuple()) 18 totalDays = totalSeconds / (3600 * 24) 19 start_day = int(totalDays -int(day) + 1) 20 21 weeks = { 22 0: u"周日", 23 1: u"周一", 24 2: u"周二", 25 3: u"周三", 26 4: u"周二", 27 5: u"周五", 28 6: u"周六" 29 } 30 31 index = (4 + start_day) % 7 32 33 print u" < 2016年10月" 34 print u" 日 一 二 三 四 五 六" 35 36 # print + 逗号会多一个空格 37 for i in range(1, 32): 38 if i == 1: 39 print " " * 5 * index + " %d" % i, 40 else: 41 print "%4d" % i, 42 if (4 + start_day + i - 1) % 7 == 6: 43 print
【Time系列四】查询当月日历
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。