各位用户为了找寻关于利用python获取当前日期前后N天或N月日期的方法示例的资料费劲了很多周折。这里教程网为您整理了关于利用python获取当前日期前后N天或N月日期的方法示例的相关资料,仅供查阅,以下为您介绍关于利用python获取当前日期前后N天或N月日期的方法示例的详细内容
前言
最近因为工作原因,发现一个Python的时间组件,很好用分享出来!(忘记作者名字了,在这里先感谢了),下面话不多说,来一起看看详细的介绍吧。
示例代码:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182# -*- coding: utf-8 -*-
'''获取当前日期前后N天或N月的日期'''
from
time
import
strftime, localtime
from
datetime
import
timedelta, date
import
calendar
year
=
strftime(
"%Y"
, localtime())
mon
=
strftime(
"%m"
, localtime())
day
=
strftime(
"%d"
, localtime())
hour
=
strftime(
"%H"
, localtime())
min
=
strftime(
"%M"
, localtime())
sec
=
strftime(
"%S"
, localtime())
def
today():
'''''
get today,date format="YYYY-MM-DD"
'''
''
return
date.today()
def
todaystr():
'''
get date string, date format="YYYYMMDD"
'''
return
year
+
mon
+
day
def
datetime():
'''''
get datetime,format="YYYY-MM-DD HH:MM:SS"
'''
return
strftime(
"%Y-%m-%d %H:%M:%S"
, localtime())
def
datetimestr():
'''''
get datetime string
date format="YYYYMMDDHHMMSS"
'''
return
year
+
mon
+
day
+
hour
+
min
+
sec
def
get_day_of_day(n
=
0
):
'''''
if n>=0,date is larger than today
if n<0,date is less than today
date format = "YYYY-MM-DD"
'''
if
(n <
0
):
n
=
abs
(n)
return
date.today()
-
timedelta(days
=
n)
else
:
return
date.today()
+
timedelta(days
=
n)
def
get_days_of_month(year, mon):
'''''
get days of month
'''
return
calendar.monthrange(year, mon)[
1
]
def
get_firstday_of_month(year, mon):
'''''
get the first day of month
date format = "YYYY-MM-DD"
'''
days
=
"01"
if
(
int
(mon) <
10
):
mon
=
"0"
+
str
(
int
(mon))
arr
=
(year, mon, days)
return
"-"
.join(
"%s"
%
i
for
i
in
arr)
def
get_lastday_of_month(year, mon):
'''''
get the last day of month
date format = "YYYY-MM-DD"
'''
days
=
calendar.monthrange(year, mon)[
1
]
mon
=
addzero(mon)
arr
=
(year, mon, days)
return
"-"
.join(
"%s"
%
i
for
i
in
arr)
def
get_firstday_month(n
=
0
):
'''''
get the first day of month from today
n is how many months
'''
(y, m, d)
=
getyearandmonth(n)
d
=
"01"
arr
=
(y, m, d)
return
"-"
.join(
"%s"
%
i
for
i
in
arr)
def
get_lastday_month(n
=
0
):
'''''
get the last day of month from today
n is how many months
'''
return
"-"
.join(
"%s"
%
i
for
i
in
getyearandmonth(n))
def
getyearandmonth(n
=
0
):
'''''
get the year,month,days from today
befor or after n months
'''
thisyear
=
int
(year)
thismon
=
int
(mon)
totalmon
=
thismon
+
n
if
(n >
=
0
):
if
(totalmon <
=
12
):
days
=
str
(get_days_of_month(thisyear, totalmon))
totalmon
=
addzero(totalmon)
return
(year, totalmon, days)
else
:
i
=
totalmon
/
12
j
=
totalmon
%
12
if
(j
=
=
0
):
i
-
=
1
j
=
12
thisyear
+
=
i
days
=
str
(get_days_of_month(thisyear, j))
j
=
addzero(j)
return
(
str
(thisyear),
str
(j), days)
else
:
if
((totalmon >
0
)
and
(totalmon <
12
)):
days
=
str
(get_days_of_month(thisyear, totalmon))
totalmon
=
addzero(totalmon)
return
(year, totalmon, days)
else
:
i
=
totalmon
/
12
j
=
totalmon
%
12
if
(j
=
=
0
):
i
-
=
1
j
=
12
thisyear
+
=
i
days
=
str
(get_days_of_month(thisyear, j))
j
=
addzero(j)
return
(
str
(thisyear),
str
(j), days)
def
addzero(n):
'''''
add 0 before 0-9
return 01-09
'''
nabs
=
abs
(
int
(n))
if
(nabs <
10
):
return
"0"
+
str
(nabs)
else
:
return
nabs
def
get_today_month(n
=
0
):
'''''
获取当前日期前后N月的日期
if n>0, 获取当前日期前N月的日期
if n<0, 获取当前日期后N月的日期
date format = "YYYY-MM-DD"
'''
(y, m, d)
=
getyearandmonth(n)
arr
=
(y, m, d)
if
(
int
(day) <
int
(d)):
arr
=
(y, m, day)
return
"-"
.join(
"%s"
%
i
for
i
in
arr)
if
__name__
=
=
"__main__"
:
print
today()
print
todaystr()
print
datetime()
print
datetimestr()
print
get_day_of_day(
20
)
print
get_day_of_day(
-
3
)
print
get_today_month(
-
3
)
print
get_today_month(
3
)
print
get_today_month(
19
)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持!
原文链接:http://blog.csdn.net/qq_29287973/article/details/52438184