zoukankan      html  css  js  c++  java
  • 输入一个日期,计算这个日期与 2018-03-12差多少天;

    #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
    ')
    
        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
    请重新输入!
    ')
            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
    ')
    
        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
  • 相关阅读:
    soap-学习
    Redis教程
    Java 不可变对象
    java volatile
    Go语言
    mongodb 基础语法
    Linux 命令大全
    Java json字符串对比
    sqlserver 数据库阻塞和死锁
    http 和 https 的区别
  • 原文地址:https://www.cnblogs.com/xiaoxiao075/p/10205221.html
Copyright © 2011-2022 走看看