xiaoxiao075
#coding=gbk
\'\'\'
1、计算输入日期与基准日期的差异天数
2、方法2 利用time包
\'\'\'

#输入一个日期,计算这个日期与 2018-03-12差多少天;
def count_days():
    dt_1=\'2018-03-12\'
    dt_2=[int(i) for i in dt_1.split(\'-\')]
    yy,mm,dd=dt_2
    #print(\'yy,mm,dd:\',yy,mm,dd)
    print(\'基准日期:\',dt_1)
    date_input=input(\'请输入日期:格式2018-01-01\n\')

    dt=date_input.split(\'-\')
    dt=[int(i) for i in dt]
    year,month,day=dt
    print(\'year,month,day\',date_input)
    if year<yy or (year==yy and month<mm) or (year==yy and month==mm and day<dd):
        print(\'输入日期必须大于基准日期,1970-3-12\n请重新输入!\n\')
        return None

    if year==yy and day>=dd:
        diff_year=0
        diff_month=month-mm
        diff_day=day-dd
    elif year==yy and day<dd:
        diff_year=0
        diff_month=month-mm-1
        diff_day=30-dd+day
    elif year>=yy+1:
        diff_year=year-yy-1
        diff_month=12-mm-1+month
        diff_day=30-dd+day
    print(\'diff_year:%s,diff_month:%s,diff_day:%s\'%(diff_year,diff_month,diff_day))
    return diff_year*365+diff_month*30+diff_day
\'\'\'
if __name__==\'__main__\':
    
    i=0
    while i<5:
        result=count_days()
        
        if result:
            
            print(\'差异天数为:%s天\'%result)
        i+=1
\'\'\'

#方法2:利用time包计算差异天数

import time

def isleap_year(year):
    if (year%4==0 and year%100!=0) or year%400==0:
        return 366
    return 365

def count_days_1():
    dt_1=\'2018-03-12\'
    date_input=input(\'请输入日期:格式2018-01-01\n\')

    dt_format_1=time.strptime(dt_1,\'%Y-%m-%d\')
    date_format=time.strptime(date_input,\'%Y-%m-%d\')

    yy=int(dt_1.split(\'-\')[0])
    year=int(date_input.split(\'-\')[0])

    day_count=dt_format_1.tm_yday
    date_count=date_format.tm_yday

    if year==yy:
        
        diff_day=date_count-day_count
        return diff_day
    elif year>=yy+1:
        year_days=0
        for i in range(yy,year):
            year_days+=isleap_year(i)
            print(\'year_days:\',year_days)
            
        diff_day=year_days-day_count+date_count
        
        return diff_day

i=0
while i<4:
    aa=count_days_1()
    print(\'方法2计算的差异天数为:%s天\'%aa)
    i+=1

 

 

分类:

技术点:

相关文章: