先理一下思路:
1、weekday 会根据某个日期返回 0 到 6 的一个数字来表示星期几对吧,0== 星期一
我们来列一个表:
1 | [0,1,2,3,4,5,6] |
2、知道了星期几之后,你可以计算出那一周相对于这个 0 到 6 的数字的差值(比如你确定一个比较值 0,那么取得该日期的 weekday 值假设为 n,那么这个差值就是 0-n 对吧,针对第一条发现的列表,假设我们指定的日期是星期二,weekday 数值为 1:
1 | [0,1,2,3,4,5,6] |
就是说 n 在列表中 1 的位置,数值也是 1,那么前面星期一是否就刚好是 0-1 的相对位置了呢?
理解了么?0-n 就刚好是星期一所代表的相对位置。
那么星期二呢?是不是就是 0-n+1?
自然的,星期三就是 0-n+2
0-n+3
0-n+4
0-n+5
0-n+6,就是星期日
3、知道了相对位置,那么只需要进行日期的叠加就可以了。
以下的代码不推荐你直接使用:
1 | import datetime,time |
运行结果为:【星期几,日期】,同样 0 表示星期一
1 | thisweek('2016-07-18') |