zoukankan      html  css  js  c++  java
  • python——日历

     1 #!/usr/bin/env/ python3
     2 # -*- codinf: utf-8 -*-
     3 # year: 2018
     4 # day: 138
     5 #   --> XX/XX
     6 # year: 2000
     7 # day: 63
     8 # --> 03/03
     9 # year: 2014
    10 # day: 63
    11 #   --> 03/04
    12 def is_leap_year(year):
    13     if year % 100 != 0:
    14        if year % 4 == 0:
    15           return 1
    16     else:
    17        if year % 400 == 0:
    18           return 1
    19     return 0
    20 
    21 def get_days_by_year_month(year,month):
    22     days = [ # 01  02  03  04  05  06  07  08  09 10 11 12
    23               [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
    24               [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
    25     ]
    26     return days[is_leap_year(year)][month-1]
    27 
    28 def get_month_day_by_year_days(year, days):
    29     month, day = 1, 1
    30     ###
    31     while True:
    32         d = get_days_by_year_month(year, month)
    33         if days <= d:
    34            day = days
    35            break
    36         days -= d
    37         month += 1
    38     ###
    39 
    40     return month, day
    41 def get_days_by_year_month_day(year, month, day):
    42     # 2018/3/18  -->  31+28+18
    43     days = day
    44     for i in range(1, month):
    45         days += get_days_by_year_month(year, i)
    46     return days
    47 
    48 if __name__ == '__main__':
    49     year  = int(input('year:  '))
    50     month = int(input('month: '))
    51     day   = int(input('day:   '))
    52     days  = get_days_by_year_month_day(year, month, day)
    53     print('%d/%02d/%02d --> %dday(s) in %d year.' %(year, month, day, days, year))
    54     days  = int(input('day: '))
    55     month, day = get_month_day_by_year_days(year, days)
    56     print('%d of %d --> %02d/%02d' %(days, year, month, day))

    执行结果:
    可以查询2018年开始到指定日期过去多少天,也可以用天数来查询日期
    [root@lpc 05-4-日历]# python3 rili.py
    year:  2018
    month: 5
    day:   27
    2018/05/27 --> 147day(s) in 2018 year.
    day: 148
    148 of 2018 --> 05/28



  • 相关阅读:
    [杂七杂八][高效程序员应该养成的七个习惯][转载]
    链表反转,只用两次头插法就实现了 hello
    清除空格 hello
    单词计数 hello
    单词查找程序 hello
    sdut 超级玛丽
    ural Episode Nth: The Jedi Tournament(缩点+建树)
    sudt 括号东东(模拟题)
    ural Pilot Work Experience(dfs + bfs )
    ural Team building(强连通分支)
  • 原文地址:https://www.cnblogs.com/Leonardo-li/p/9096501.html
Copyright © 2011-2022 走看看