• python 实例四


    https://www.cnblogs.com/evablogs/p/6754981.html

    题目:输入某年某月某日,判断这一天是这一年的第几天?

    程序分析:

    月份天数:

    月份 天数
    2 平年28天,闰年29天
    1,3,5,7,8,10,12 31
    4,6,9,11 30

     

     闰年:

    1、非整百年:能被4整除的为闰年。(如2004年就是闰年,2100年不是闰年)
     
    2、整百年:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    >>> L=[31,31,30,31,30,31,31,30,31,30,31]
    >>> def caldate(a,b,c):
        s=0
        if(a%100!=0 and a%4==0 or a%100==0 and a%400==0):
            L.insert(1,29)
        else:
            L.insert(1,28)
        for in range(b-1):
            s=s+L[i]
        return s+c
     
    >>> caldate(2016,1,2)
    2
    >>> caldate(2016,3,2)
    62

    改进版:考虑了月份和天数的有效性(哈哈,对比网上的答案,一看自己的代码就像是菜鸟级的,还有很多需要学习的地方)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    def caldate(a,b,c):
        L=[31,31,30,31,30,31,31,30,31,30,31]
        s=0
        Leap=0
        if(a%100!=0 and a%4==0 or a%100==0 and a%400==0):
            L.insert(1,29)
            Leap=1
        else:
            L.insert(1,28)
        if 0<b<=12:
            if 0<c<=31:
                if((b==2)and(Leap==1)and(c<=29)or((b==2)and(Leap==0)and(c<=28))):
                    for in range(b-1):
                        s=s+L[i]
                        return s+c
                else:
                    print 'The February should not greater than 28 or 29'
            else:
                print 'The date is error'
        else:
            print 'The month is invalid'

    输出:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> caldate(2016,4,33)
    The date is error
    >>> caldate(2017,2,30)
    The February should not greater than 28 or 29
    >>> caldate(2017,2,28)
    59
    >>> caldate(2017,2,29)
    The February should not greater than 28 or 29
    >>> caldate(2017,13,29)
    The month is invalid

    网上答案:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
      
    year = int(raw_input('year: '))
    month = int(raw_input('month: '))
    day = int(raw_input('day: '))
      
    months = (0,31,59,90,120,151,181,212,243,273,304,334)
    if 0 < month <= 12:
        sum = months[month - 1]
    else:
        print 'data error'
    sum += day
    leap = 0
    if (year % 400 == 0or ((year % 4 == 0and (year % 100 != 0)):
        leap = 1
    if (leap == 1and (month > 2):
        sum += 1
    print 'it is the %dth day.' % sum

     输出结果:

    1
    2
    3
    4
    5
    6
    7
    year:
    2015
    month:
    6
    day:
    7
    it is the 158th day.
  • 相关阅读:
    qml----动画入门(六、简单的动画实现 SpringAnimation类)
    qml----动画入门(五、简单的动画实现 SmoothedAnimation类)
    qml----动画入门(四、简单的动画实现 PathAnimation类)
    qml----动画入门(三、简单的动画实现 RotationAnimation类)
    SSRS连接ORACLE数据库制作报表
    JavaScript Number 对象
    Django--filter()-字段查找(双下划线的使用详解)
    Django--filter(**kwargs)
    Django--QuerySet--基础查询
    python 内置函数
  • 原文地址:https://www.cnblogs.com/yuer20180726/p/10790239.html
Copyright © 2020-2023  润新知