初学 Python — 处理日期与时间[0]

一、寻找2013年与2014今日之前(包括今日)年所有的星期五

import datetime
import calendar
today = datetime.date.today()
oneday = datetime.timedelta(days=1)
while today.year == 2014 or today.year == 2013:
    if today.weekday()==4:
        print(today.strftime('%A, %d-%b-%Y'))
        today = today-oneday*7
    else:
        today -= oneday

*注意

1  today.year,today.month,today.day,today.weekday()返回的都是int型,其中weekday()的周一到周日分别以0-6表示。

2  默认日期格式是2014-03-04

3  切不可使用这种循环 while today.year==2014 or 2013。同时Python逻辑运算符号没有||,&&一说。

4  如果要寻找某年的某月的星期X,则定义以下函数(不考虑鲁棒性)

import datetime
import calendar
def FindWeekday(year,month,weekday):
    oneday = datetime.timedelta(days=1)
    if month == 0:
        fristday = datetime.date(year,1,1)
        while fristday.year == year:
            if fristday.weekday()==weekday-1:
                print(fristday.strftime('%A, %d-%b-%Y'))
                fristday += oneday*7
            else:
                fristday += oneday
    else:
        fristday = datetime.date(year,month,1)
        while fristday.year == year and fristday.month == month:
            if fristday.weekday()==weekday-1:
                print(fristday.strftime('%A, %d-%b-%Y'))
                fristday += oneday*7
            else:
                fristday += oneday
5  为了能够随时调用4中函数,我们将其存储到C:/MyPython目录下,建立新文件,载入该模块

import sys
sys.path.append("C:\MyPython")  #将目标路径加入到Python搜索路径中去
import FindWeekDay #或者 from MyPython import <span style="font-family: Arial, Helvetica, sans-serif;">FindWeekDay </span>
这时,如果直接调用
FindWeekDay(2013,1,3)
将会报错,TypeError: 'module' object is not callable

需加入模块名限定即可

FindWeekDay.FindWeekDay(2013,1,3)
运行结果如下
Wednesday, 02-Jan-2013
Wednesday, 09-Jan-2013
Wednesday, 16-Jan-2013
Wednesday, 23-Jan-2013
Wednesday, 30-Jan-2013

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值