利用python获取当前日期前后N天或N月日期的方法示例


Posted in Python onJuly 30, 2017

前言

最近因为工作原因,发现一个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)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持

Python 相关文章推荐
Mac 上切换Python多版本
Jun 17 Python
Python实现统计代码行的方法分析
Jul 12 Python
python实现发送邮件功能代码
Dec 14 Python
浅谈Python中的私有变量
Feb 28 Python
Python设计模式之享元模式原理与用法实例分析
Jan 11 Python
Django-Model数据库操作(增删改查、连表结构)详解
Jul 17 Python
python正则-re的用法详解
Jul 28 Python
在Python中通过threshold创建mask方式
Feb 19 Python
python使用OpenCV模块实现图像的融合示例代码
Apr 10 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
Oct 30 Python
python实现磁盘日志清理的示例
Nov 05 Python
只用20行Python代码实现屏幕录制功能
Jun 02 Python
Python 装饰器使用详解
Jul 29 #Python
python实现数据图表
Jul 29 #Python
基于Python的XSS测试工具XSStrike使用方法
Jul 29 #Python
使用Kivy将python程序打包为apk文件
Jul 29 #Python
python对配置文件.ini进行增删改查操作的方法示例
Jul 28 #Python
Python3中使用PyMongo的方法详解
Jul 28 #Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
Jul 28 #Python
You might like
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
070823更新的一个[消息提示框]组件 兼容ie7
2007/08/29 Javascript
动态加载js和css(外部文件)
2013/04/17 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
js控制淡入淡出示例代码
2013/11/12 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
使用JS读取XML文件的方法
2016/11/25 Javascript
React简单介绍
2017/05/24 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
基于AngularJS的简单使用详解
2017/09/10 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
深入理解Python中字典的键的使用
2015/08/19 Python
利用python打印出菱形、三角形以及矩形的方法实例
2017/08/08 Python
PyGame贪吃蛇的实现代码示例
2018/11/21 Python
Pandas库之DataFrame使用的学习笔记
2019/06/21 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
python实现UDP协议下的文件传输
2020/03/20 Python
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
篮球比赛拉拉队口号
2014/06/10 职场文书
社会工作专业求职信
2014/07/15 职场文书
完整版商业计划书
2014/09/15 职场文书
党员反邪教心得体会
2016/01/15 职场文书
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
2021/09/04 SQL Server