python怎么获得每个月的第一天和最后一天

Python09

python怎么获得每个月的第一天和最后一天,第1张

第一天不用获取吧,都是1呀,最后一天的话可以使用标准模块的calendar模块的monthrange(year,month)方法

该方法返回指定年月的最后一天星期和日期,类型为tuple,如

import calendar

print calendar.monthrange(2015, 2)

结果为(6, 28),6为最后一天星期几,28为2月的最后一天日期

'''''

日期相关的操作

'''

from

datetime

import

datetime

from

datetime

import

timedelta

DATE_FMT

=

'%Y-%m-%d'

DATETIME_FMT

=

'%Y-%m-%d

%H:%M:%S'

DATE_US_FMT

=

'%d/%m/%Y'

'''''

格式化常用的几个参数

Y

1999

y

:99

m

:

mouth

02

12

M

:

minute

00-59

S

:

second

d

:

day

H

:

hour

'''

def

dateToStr(date):

'''''把datetime类型的时间格式化自己想要的格式'''

return

datetime.strftime(date,

DATETIME_FMT)

def

strToDate(strdate):

'''''把str变成日期用来做一些操作'''

return

datetime.strptime(strdate,

DATETIME_FMT)

def

timeElement():

'''''获取一个时间对象的各个元素'''

now

=

datetime.today()

print

'year:

%s

month:

%s

day:

%s'

%(now.year,

now.month,

now.day)

print

'hour:

%s

minute:

%s

second:

%s'

%(now.hour,

now.minute,

now.second)

print

'weekday:

%s

'

%(now.weekday()+1)

#一周是从0开始的

def

timeAdd():

'''''

时间的加减,前一天后一天等操作

datetime.timedelta([days[,

seconds[,

microseconds[,

milliseconds[,

minutes[,

hours[,

weeks]]]]]]])

参数可以是正数也可以是负数

得到的对象可以加也可以减

乘以数字和求绝对值

'''

atime

=

timedelta(days=-1)

now

=

datetime.strptime('2001-01-30

11:01:02',

DATETIME_FMT)

print

now

+

atime

print

now

-

abs(atime)

print

now

-

abs(atime)*31

import

calendar

def

lastFirday():

today

=

datetime.today()

targetDay

=

calendar.FRIDAY

thisDay

=

today.weekday()

de

=

(thisDay

-

targetDay)

%

7

res

=

today

-

timedelta(days=de)

print

res

def

test():

#print

dateToStr(datetime.today())

#print

strToDate('2013-01-31

12:00:01')

#timeElement()

#timeAdd()

#lastFirday()

if

__name__=='__main__':

test()