python日期管理工具

2022-06-29 07:30:14 字數 3705 閱讀 4326

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @time : 2020/3/27 0027

# @author : justin.鄭 [email protected]

# @file : date_utils.py

# @desc : 日期管理工具

import datetime

import time

import pandas as pd

def year_qua(date):

mon = date[5:7]

mon = int(mon)

return [date[0:4], _quar(mon)]

def _quar(mon):

if mon in [1, 2, 3]:

return '1'

elif mon in [4, 5, 6]:

return '2'

elif mon in [7, 8, 9]:

return '3'

elif mon in [10, 11, 12]:

return '4'

else:

return none

def today():

"""獲取當天日期 年-月-日

"""day = datetime.datetime.today().date()

return str(day)

def get_year():

"""獲取當年

"""year = datetime.datetime.today().year

return year

def get_month():

"""獲取當月

"""month = datetime.datetime.today().month

return month

def get_hour():

"""獲取當前小時

"""return datetime.datetime.today().hour

def today_last_year():

"""獲取去年的今天日期

"""lasty = datetime.datetime.today().date() + datetime.timedelta(-365)

return str(lasty)

def day_last_week(days=-7):

"""獲得前幾天的日期

:param days: 前幾天

"""lasty = datetime.datetime.today().date() + datetime.timedelta(days)

return str(lasty)

def day_last_date(date, days=-1):

"""獲得某天的之前一天日期

:param date: 日期

"""dd = datetime.datetime.strptime(date, "%y-%m-%d")

lasty = dd + datetime.timedelta(days)

return str(lasty)[0:10]

def get_now():

"""獲得當前時間

"""return time.strftime('%y-%m-%d %h:%m:%s')

def int2time(timestamp):

datearr = datetime.datetime.utcfromtimestamp(timestamp)

timestr = datearr.strftime("%y-%m-%d %h:%m:%s")

return timestr

def diff_day(start=none, end=none):

"""兩個日期間 相差天數

:param start: 開始日期

:param end: 截止日期

:return: 相差天數

"""d1 = datetime.datetime.strptime(end, '%y-%m-%d')

d2 = datetime.datetime.strptime(start, '%y-%m-%d')

delta = d1 - d2

return delta.days

def get_quarts(start, end):

idx = pd.period_range('q'.join(year_qua(start)), 'q'.join(year_qua(end)),

freq='q-jan')

return [str(d).split('q') for d in idx][::-1]

def trade_cal():

'''交易日曆

isopen=1是交易日,isopen=0為休市

'''all_cal_file = ''

df = pd.read_csv(all_cal_file)

return df

def is_holiday(date):

'''判斷是否為交易日,返回true or false

'''df = trade_cal()

holiday = df[df.isopen == 0]['calendardate'].values

if isinstance(date, str):

today = datetime.datetime.strptime(date, '%y-%m-%d')

if today.isoweekday() in [6, 7] or str(date) in holiday:

return true

else:

return false

def last_tddate():

today = datetime.datetime.today().date()

today = int(today.strftime("%w"))

if today == 0:

return day_last_week(-2)

else:

return day_last_week(-1)

def tt_dates(start='', end=''):

startyear = int(start[0:4])

endyear = int(end[0:4])

dates = [d for d in range(startyear, endyear + 1, 2)]

return dates

def _random(n=13):

from random import randint

start = 10 ** (n - 1)

end = (10 ** n) - 1

return str(randint(start, end))

def get_q_date(year=none, quarter=none):

dt =

return '%s%s' % (str(year), dt[str(quarter)])

if __name__ == "__main__":

tmp = day_last_date('2017-03-27')

# tmp = tt_dates('2017-03-27', '2021-03-30')

print(tmp)

python管理工具

與conda常常一起出現的幾個小夥伴 pip virtualenv anaconda miniconda等。virtualenv vitualenv是環境管理工具,可以建立獨立的python環境 與預設環境具有相似的目錄結構。conda conda可同時進行包管理和環境管理,通過conda可以建立環...

Python 包管理工具

如圖,可以看到distribute是setuptools的取代,pip是easy install的取代。核心目的是發布,即打包 生成安裝檔案等。disutils setuptools distribute python自帶模組,用於打包 生成安裝檔案 安裝包,需借助setup.py指令碼。distu...

Python的包管理工具

剛開始學習python時,在看文件和別人的blog介紹安裝包有的用easy install,setuptools,有的使用pip,distribute,那麼這幾個工具有什麼關係呢,看一下下面這個圖就明白了 可以看到distribute是setuptools的取代,pip是easy install的取...