python获取一个月之前日期_利用python获取当前日期前后N天或N月日期的方法示例...

前言

最近因为工作原因,发现一个Python的时间组件,很好用分享出来!(忘记作者名字了,在这里先感谢了),下面话不多说,来一起看看详细的介绍吧。

示例代码:

# -*- 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://www.mzph.cn/news/335406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

red hat 4.1.2_安装Red Hat Container Development Kit 2.2版本

red hat 4.1.2当应用程序开发人员或架构师负责探索容器化应用程序提供的可能性时&#xff0c;没有比“红帽容器开发套件”&#xff08;CDK&#xff09;容易的了。 Red Hat CDK具有本地OSX&#xff0c;Linux或Windows环境所需的所有Cloud工具&#xff0c;并且已预先配置了一些容…

数据库的视图

视图 View 视图也被称为虚表( 虚拟的表 ) , 视图对应于一条 Select 语句 , 这条查询语句得到的结果集被赋予一个名字 , 即视图的名字 , 此后可以像操作表一样操作这个视图 使用视图的主要目的是简化复杂查询 视图可以隐藏数据表的列 视图不包含任何数据。是基表数据的投影。…

matlab中prprob,pr-sr-master

文件名大小更新时间pr-sr-master02012-09-14pr-sr-master\GetSpeechFeatures02012-09-14pr-sr-master\GetSpeechFeatures\GetSpeechFeatures.m36182012-09-14pr-sr-master\GetSpeechFeatures\audspec.m13062012-09-14pr-sr-master\GetSpeechFeatures\fft2melmx.m50022012-09-14…

python程序怎么给别人运行_如何使Python脚本作为服务运行?

小编典典 我使用此代码来守护我的应用程序。它允许您start/stop/restart使用以下命令来编写脚本。 python myscript.py start python myscript.py stop python myscript.py restart 除此之外&#xff0c;我还有一个init.d脚本来控制我的服务。这使您可以在操作系统启动时自动启…

kata_小规模流处理kata。 第2部分:RxJava 1.x / 2.x

kata在第1部分&#xff1a;线程池中&#xff0c;我们设计并实现了相对简单的系统&#xff0c;用于实时处理事件。 确保您阅读了上一部分&#xff0c;因为它包含一些我们将重用的类。 以防万一这是要求&#xff1a; 一个系统每秒发送大约一千个事件。 每个Event至少具有两个属性…

Oracle数据库的Sequence(序列)

序列 Sequence( 掌握 ) 序列(Sequence)是一种用来生成唯一数字值的数据库对象。序列的值由Oracle程序按递增或递减顺序自动生成 , 通常用来自动生成表的主键值 , 是一种高效率获得唯一键 值的途径。

高斯背景建模 matlab,高斯背景建模整理 – 要饭的

OpenCV 中高斯背景建模相关论文BackgroundSubtractorMOG:Paper : An Improved Adaptive Background Mixture Model for Real-time Tracking with Shadow DetectionWebsite : http://personal.ee.surrey.ac.uk/Personal/R.Bowden/publications/avbs01/avbs01.pdf创新点 &#x…

apache ignite_使用Apache Storm和Apache Ignite进行复杂事件处理(CEP)

apache ignite在本文中&#xff0c; “使用Apache Ignite进行高性能内存计算”一书的作者将讨论使用Apache Strom和Apache Ignite进行复杂的事件处理。 本文的一部分摘自 书 。 术语“复杂事件处理”或CEP没有广泛或高度接受的定义。 Wikipedia的以下引用可以简要描述什么是复…

python 生成器_提高你的Python: 解释‘yield’和‘Generators(生成器)’

例子&#xff1a;有趣的素数 假设你的老板让你写一个函数&#xff0c;输入参数是一个int的list&#xff0c;返回一个可以迭代的包含素数 记住&#xff0c;迭代器&#xff08;Iterable&#xff09; 只是对象每次返回特定成员的一种能力。 你肯定认为"这很简单"&#x…

数据库的存储过程

存储过程 Procedure 过程( Procedure )是一种 PL/SQL 存储程序单元 , 主要用于在数据库中完成特定的操作或者任务 , 如果在程序中经常需要执行某个操作 , 可以基于这些操作建立一个过程 ,用于简化客户端的开发和维护 , 以及提高执行性能。 在实际项目开发中&#xff0c;因为业…

tpm php,TPM系列

近来一直在整理资料&#xff0c;刚好看到有比较详细的介绍&#xff0c;就发扬一下“拿来主义”吧&#xff1a;)顺便鄙视一下某安全网站转载我的博客很乱&#xff1a;(1、安装环境准备1.1内核Linux内核2.6.12版本及以上&#xff0c;提供了对tpm芯片的支持&#xff0c;下载地址&a…

zookeeper 日志查看_每天使用的注册中心zookeeper,流量暴涨怎么办?

通过本文能学习什么&#xff1f;初步了解zookeeper监控如何运用tcpdump Wireshark抓包分析Dubbo在zookeeper上节点设计如何查看zookeeper节点快照背景zookeeper作为dubbo的注册中心&#xff0c;承载着服务的基础信息(方法名&#xff0c;分组&#xff0c;版本等)&#xff0c;服…

javaone_JavaOne 2016 Essentials:您不应该错过的7个事件和会话

javaone参加JavaOne吗&#xff1f; 确保您不会错过这些活动 又到了每年的这个时候。 旧金山一年一度的Java假期即将来临&#xff0c;全市各地举行了超过400场会议和活动。 随着所有这些丰富的内容和新体验同时发生&#xff0c;很容易就无法跟踪正在发生的事情。 在这篇文章中…

Oracle的package(包)

包 Package 包是一种比较特殊的 PL/SQL 程序 , 它并不是一个 PL/SQL 存储程序块 , 而是用于将相关的存储过程和函数组织起来 , 组成 PL/SQL 存储程序组。 包由两个独立部分组成:包头和包体。

python中可用于布尔测试的,如何在Python中使用布尔值?

Python中的布尔值是整数的子类。布尔构造函数-bool。bool类继承自int类。issubclass(bool,int) // will return Trueisinstance(True,bool) , isinstance(False,bool) //they both TrueTrue和False是单例对象。它们将在应用程序的整个生命周期内保持相同的内存地址。当您键入Tr…

python比较两张图片是否一样_opencv_判断两张图片是否相同

python金融风控评分卡模型和数据分析微专业课&#xff08;博主亲自录制视频&#xff09;&#xff1a;http://dwz.date/b9vv本文为原创,转载请注明&#xff0c;作者 231469242qq.com OpenCV介绍 OpenCV是一个基于BSD许可&#xff08;开源&#xff09;发行的跨平台计算机视觉库&a…

kata_小规模流处理kata。 第1部分:线程池

kata我再次为我的公司在GeeCON 2016上举办了编程竞赛。 这次分配需要设计并根据以下要求选择实施系统&#xff1a; 一个系统每秒发送大约一千个事件。 每个Event至少具有两个属性&#xff1a; clientId –我们期望一个客户端每秒最多可以处理几个事件 UUID –全球唯一 消耗…

Oracle数据库的trigger(触发器)

触发器 Trigger PL/SQL 程序中的触发器的结构类似于函数和过程 , 与函数和过程不同 , 触发器是在事件发生时隐式地运行的。相当于Java语言中的事件监听器

hpux oracle9,oracle 9.2.0.8在HP-UX 11.31 下的安装步骤和注意事项

在hp_unix ia64位操作系统安装oracle 数据库步骤1. 操作系统安装好后打补丁和调参数&#xff1a;(1) 打上patch(PHKL_38038)&#xff0c;安装oracle9i必须打此补丁(2) 配置好网卡IP&#xff0c;可用xmanager调用系统图形化界面(3) 按方案调整内核参数2. 数据库安装(1) 命令行创…

bat 存储过程返回值_为什么不推荐使用存储过程?

之所以有这个题目&#xff0c;我既不是故意吸引眼球&#xff0c;也不想在本文对存储过程进行教科书般论述。最近项目中遇到的存储过程问题&#xff0c;让我想起了去年在武汉出差时一位同事的发问&#xff1a;我觉得存储过程挺好用的&#xff0c;为什么你不建议用&#xff1f;当…