精华内容
下载资源
问答
  • python 入门学习-输入日期判断天数

    千次阅读 2019-07-26 16:04:29
    输入某年某月某日,判断这一天是这一年的第几天,主要是牵扯到 月份不同 天数不一样,年份不同分闰年和平年只分 闰年判断,四年一润,百年不润 四百年再润 if ((year % 4 == 0) and(year % 100 != 0)) or (year %...

    输入某年某月某日,判断这一天是这一年的第几天,主要是牵扯到 月份不同 天数不一样,年份不同分闰年和平年只分

    闰年判断,四年一润,百年不润    四百年再润 

    if ((year % 4 == 0) and(year % 100 != 0)) or  (year % 400 == 0 ) :
        days+=1)

    1.通过本节主要学习 元组,列表,集合,字 典 的使用

    a) 元组(tuple)是特殊的序列类型

     

      1. 一旦创建不能修改,使得代码更安全,使用逗号和圆括号来表示 如(2,4,6,8)  (‘read’,‘green’,'blue')

      2.访问方式和列表相同

      3.一般用于表达固定数据项。函数多返回值等情况

    元组中的元素可以是不同的类型 ,元组的各样元素存在先后关系,可以通过索引访问元组中的元素

      

    """
    作者:
    版本:v1.0
    功能:输入年月日 判断是一年中的第几天
    日期:20190726
    使用元组的方式和列表两种方式,其中元组方式 已经注释
    
    """
    from _datetime import datetime
    
    def main():
        input_data_str = input('请输入日期(yyyy/mm/dd):')
    
        input_data = datetime.strptime(input_data_str, '%Y/%m/%d')
        print(input_data_str)
        year = input_data.year
        month = input_data.month
        day = input_data.day
    
        # 计算之前月份的天数总和使用元组的方式实现
        # days_in_month_tub =(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
        # days = sum(days_in_month_tub[:month-1]) + day
        # if (year % 400 == 0 ) or ((year % 4 == 0) and(year % 100 != 0)):
        #     days += 1
    
        # 计算之前月份的天数总和使用列表的方式实现
        days_in_moth_lis = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
        # 判断是否是闰年
    
        if (year % 400 == 0 ) or ((year % 4 == 0) and(year % 100 != 0)):
            days_in_moth_lis[1] = 29
    
        days = sum(days_in_moth_lis[:month - 1]) + day
        print('这是第{}天'.format(days))
    
    
    if __name__ == '__main__':
        main()

     

    参考代码:使用元组和列表实现的功能

    参考代码使用集合实现功能

    """
    作者:
    版本:v2.0
    功能:输入年月日 判断是一年中的第几天
    日期:20190726
    使用集合方式实现
            if i in _30_days_month_set:  # 表示判读 i 是否在集合 _30_days_moth_set 中
    """
    from _datetime import datetime
    
    def main():
        input_data_str = input('请输入日期(yyyy/mm/dd):')
    
        input_data = datetime.strptime(input_data_str, '%Y/%m/%d')
        print(input_data_str)
        year = input_data.year
        month = input_data.month
        day = input_data.day
    
        # 计算之前月份的天数总和使用集合的方式实现
        _30_days_month_set = {4,6,9,11}
        _31_days_month_set = {1,3,5,7,8,10,12}
    
        days = 0
        days += day
    
        for i in range(1, month):
            if i in _30_days_month_set:
                days += 30
            elif i in _31_days_month_set:
                days += 32
            else:
                days += 28
        # 判断是否是闰年
        if (year % 400 == 0 ) or ((year % 4 == 0) and(year % 100 != 0)):
            days += 1
    
        print('这是{}年 第{}天'.format(year, days))
    
    
    if __name__ == '__main__':
        main()

    参考代码使用字典实现功能

    """
    作者:
    版本:v3.0
    功能:输入年月日 判断是一年中的第几天
    日期:20190726
    使用字典方式实现
    """
    from _datetime import datetime
    
    def main():
        input_data_str = input('请输入日期(yyyy/mm/dd):')
    
        input_data = datetime.strptime(input_data_str, '%Y/%m/%d')
        print(input_data_str)
        year = input_data.year
        month = input_data.month
        day = input_data.day
    
        # 计算之前月份的天数总和使用字典方式实现
        # 月份 天数 字典
        month_day_dict  = {1: 31,
         2: 28,
         3: 31,
         4: 30,
         5: 31,
         6: 30,
         7: 31,
         8: 31,
         9: 30,
         10: 31,
         11: 30,
         12: 31}
    
    
        days = 0
        days += day
    
        # # 判断是否是闰年
        # if (year % 400 == 0 ) or ((year % 4 == 0) and(year % 100 != 0)):
        #     month_day_dict[2]=29
        # else:
        #     month_day_dict[2]=28
        # for i in range(1, month):
        #     days+= month_day_dict[i]
    
        # 判断是否是闰年
        if (year % 400 == 0 ) or ((year % 4 == 0) and(year % 100 != 0)):
            days+=1
    
        for i in range(1, month):
            days+= month_day_dict[i]
    
        print('这是{}年 第{}天'.format(year,days))
    
    
    if __name__ == '__main__':
        main()

     

     

     

    展开全文
  • Example-4 判断天数 题目:输入某年某月某日,判断这一天是这一年的第几天? 思路 判断输入的日期是一年中的第几天,因为一年有12个月,我们可以先考虑计算逐月累计的天数,假设输入月份是 m,那么前 m-1个月份...

    练习题 4 的网址:

    http://www.runoob.com/python/python-exercise-example4.html


    Example-4 判断天数

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

    思路

    判断输入的日期是一年中的第几天,因为一年有12个月,我们可以先考虑计算逐月累计的天数,假设输入的月份是 m,那么前 m-1个月份的天数是可以计算出来的,比如输入的是 2018 年 3 月 5 日,那么前两个月的天数就是31+28=59天,然后再加上输入的天,即 59+5=64天。

    当然,涉及到日期,年份,都需要考虑闰年,闰年的定义如下,来自百度百科

    普通闰年: 能被4整除但不能被100整除的年份为普通闰年。(如2004年就是闰年,1999年不是闰年);

    世纪闰年: 能被400整除的为世纪闰年。(如2000年是世纪闰年,1900年不是世纪闰年);

    代码实现

    实现的代码如下:

    def calculate_days():
        year = int(input('year:\n'))
        month = int(input('month:\n'))
        day = int(input('day:\n'))
    
        # 统计前 m-1 个月的天数
        months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
        sums = 0
        if 0 < month <= 12:
            sums = months[month - 1]
        else:
            print('Invalid month:', month)
    
        sums += day
    
        # 判断闰年
        is_leap = False
        if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
            is_leap = True
        if is_leap and month > 2:
            sums += 1
        return sums
    

    测试例子如下,给出两个同样的日期,但年份不同,闰年的 2016 年和非闰年的 2018年。

    # 非闰年
    year:
    2018
    month:
    3
    day:
    5
    it is the 64th day
    
    # 闰年
    year:
    2016
    month:
    3
    day:
    5
    it is the 65th day
    

    源代码在:

    https://github.com/ccc013/CodesNotes/blob/master/Python_100_examples/example4.py


    欢迎关注我的微信公众号–机器学习与计算机视觉,或者扫描下方的二维码,大家一起交流,学习和进步!

    往期精彩推荐

    Python-100 练习系列
    机器学习系列
    数学学习笔记
    Github项目 & 资源教程推荐
    展开全文
  • 使用python来确定月份的信息,首先需要确定当前的月份是几月,判断是不是平月以及有多少天还需要判断当前年份,这里需要用到一个标准库:datetime,通过这个标准库,可以获取到当前系统的时间信息 打开python自带的...

    使用python来确定月份的信息,首先需要确定当前的月份是几月,判断是不是平月以及有多少天还需要判断当前年份,这里需要用到一个标准库:datetime,通过这个标准库,可以获取到当前系统的时间信息

    打开python自带的解释器:IDLE,输入

    from datetime import datetime

    然后在输入:help(datetime)可以查看具体的用法,如下,因为太长了,这里只截取需要用到的today()函数的用法

    标红部分:通过today()函数,可以获取到当前的日期

    好了,通过这个datetime标准库我们可以获取到当前的月份和年份了,下面就是判断月份是大月、小月还是平月,这个是固定的,可以将值放在列表中(因为是不变的,这里存储在元祖中更好)

    分析的差不多了,下面就直接贴代码了:

    # -*- coding:utf-8 -*-
    '''
    月份计算:判断指定月份是大月、小月还是平月以及多少天
    '''
    # 导入datetime模块确定月份
    from datetime import datetime
    # 大月
    big_month = [1, 3, 5, 7, 8, 10, 12]
    # 小月
    small_month = [4, 6, 9, 11]
    # 平月
    flat_month = [2]
    
    
    def compute_day_month(m):
        '''
        判断指定的月份是大月、小月还是平月
        :param m: 指定的月份
        :return: 返回一个字典:包含月份的天数、月份的类型
        '''
        print('>>>>>开始计算指定的月份:%s的信息<<<<<' % (m, ))
        # 返回的数据
        out_data = {'code': 0, 'msg': 'success'}
        if m in big_month:
            # 大月
            out_data['days'] = 31
            out_data['type'] = 'Big Month'
        elif m in small_month:
            # 小月
            out_data['days'] = 30
            out_data['type'] = 'Small Month'
        elif m in flat_month:
            # 平月
            out_data['type'] = 'Flat Month'
            # 平月天数:闰年29天,平年28天
            year = datetime.today().year
            print('>>>>>年份信息是:%s<<<<<' % (year, ))
            if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
                # 闰年
                out_data['days'] = 29
            else:
                out_data['days'] = 28
        else:
            # 其他数据都是错误的
            out_data['code'] = -1
            out_data['msg'] = '数据异常,月份信息有误'
        return out_data
    
    
    # 测试
    if __name__ == '__main__':
        month = datetime.today().month
        month_info = compute_day_month(month)
        print(month_info)
        for (k, v) in month_info.items():
            print('>>>>>%s = %s<<<<<' % (k, v))
    

    运行结果如下:

    展开全文
  • python_根据年份月份打印出天数练习 """ #1.获取一个年份,一个月份 year = int (input("请输入一个年份:")) month = int (input("请输入一个月份:")) #2.判断月份是否在1~12月之间 if month < 1 or month >...

    python_根据年份月份打印出天数练习

    
    #1.获取一个年份,一个月份
    year = int (input("请输入一个年份:"))
    month = int (input("请输入一个月份:"))
    #2.判断月份是否在1~12月之间
    if month < 1 or month > 12 :
    	print("输入的月份有误")
    #3.判断2月份是否在闰年,如果闰年就打印29天,否则打印28天
    elif month == 2 :
    	if 	year % 4 == 0 and year % 100 != 0 or year % 400 == 0 :
    		print("29天")
    	else:
    		print("28天")
    #4.如果月份在4/6/9/11这几个月打印30天,否则打印31天
    elif month == 4 or month == 6 or month == 9 or month == 11:
    	print("30天")
    else:
    	print("31天")
    
    
    展开全文
  • 输入月份(month),和日期(days) 将小于月份(month)的所有天数累加求和存入(num)变量,再加上当月的日期(days)即可得到预期结果。 代码 dic_date = { 1:31,2:28,3:31,4:30,5:31,6:30, 7:31,8:31,9:30,10:31...
  • 程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天: 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- year = int(raw...
  • month = int(input('请输入月份:\t')) #输入月份 day=0 total=0 space=0 #判断输入的年份是否是闰年 isRun = year%4==0 and year%100!=0 or year%400==0 #计算1900到输入年份之前的所有天数 for y in range(1900,...
  • 输入月份的列表,包括闰年和平年的月份具体天数; 对输入的日期进行分类处理,20180101之前和20180101之后做出具体分析,具体如以下代码所示; year&gt;=2018年时:首先判断年份是否是闰年,闰年天数...
  • Python查询天数

    2021-06-05 08:31:40
    输入年份、月份和日,三个整数,判断该天是一年中第几天。提示:(1、3、5、7、8、10、12月共31天,4、6、9、11月共30天,若输入的是2月闰年29天,平年28天。判断闰年的方法是年份除以400余数为0则为润年或年份除以4...
  • Python如何判断某天是星期几

    万次阅读 2018-12-24 22:14:38
    =2018年时:首先判断年份是否是闰年,闰年天数加366,否则天数加365;然后判断月份,如果当年是闰年,月份要按照 list1 相加,否则按照 list2 相加。 year<2018年时:首先判断年份是否是闰年,闰年天数加366,...
  • 输入年月日,判断这是今年的多少天 注意: 1.天数 = 上一月为止累计的天数 + 本月天数 2.闰年和非闰年的2月天数要作...month = int(input("请输入月份:")) day = int(input("请输入日期:"))months = [0,31,59,9
  • 这是一个我在Delphi、C#和VB.NET教学中经常让学生做的一个例子:输入年份和月份判断该年是否是闰年;判断该月属于什么季节;该月有多少天。练习对语言的特性的掌握,诸如流程控制、数据类型、输入输出、函数等等。...
  • 先列出当前年份各月份天数,再累加 #coding=utf-8 "输入某年某月某日,判断这一天是这一年的第几天?" def today_th(): input_day=input("请输入年月日,格式为YYYY-MM-dd:") year=int(input_day[:4]) month=int...
  • 月份天数+日天数 判断是否为闰年 给定12月每月天数,遍历累加 没有做健壮性处理 eval() 将 str --> int 列表索引取值 感觉代码有点累赘… def count_date(): date = input("请输入以'-'为间隔的日期:") # 用...
  • 题目:输入某年某月某日,判断这一天是这一年的第几天? #先输入平年与闰年在月份上的差异 #创建一个输入器:用于输入年、月、日 #需要规避掉基础输入错误,然后求解在两种条件下的天数 run_dict={1:31,2:29,3:31,4...
  • 月份天数进行逻辑判断输入错误抛出异常提示。 代码实现 # -*- coding: utf-8 -*- ''' @File: calc_day_v2.py @Time: 2020/02/12 20:33:22 @Author: 大梦三千秋 @Contact: yiluolion@126.com ''' # Put ...
  • 输入某年某月某日,判断这一天是这一年的第几天?#!/usr/bin/envpython #-*-coding:utf-8 year=int(raw_input("输入...month=int(raw_input("输入月份:")) day=int(raw_input("输入日子:")) months=[0,31,59,90,1...
  • # 【Python练习题 004】输入某年某月某日,判断这一天是这一年的第几天?# 思路:先判断是否为闰年,这关系到 2 月份天数。# 之后再根据月份值把前几个月的天数累积加起来,最后再加上个“日”,就可以了。dat = ...
  • 题目:输入某年某月某日,判断这一天是这一年的第几天? 数学分析题目: 年份:平年和闰年(此时需要知道怎么求闰年) 当年份%4=0且年份%100!=0时,年份%400=0时,年份为闰年。 月份: 大月(1,3,5,7,8,10,12...
  • 输入某年某月某日,判断这一天是这一年的第几天? 例子: 输入的日期为2019/06/03,这是2019年的第几天? 输入的日期为2000/01/03,这是2000年的第几天? 分析 1)、每个月份天数不同 2)、闰年与平年的2月份...
  • 将平年和闰年的月份天数放入对应的字典中,根据年份,确定从哪个字典中取值,根据月份(key),累加计算该月之前的天数(value),最后再加上当月的天数即可。 '''输入某年某月某日,判断这一天是这一年的第几天...
  • 思路:先把月份转化为天数,再加上第几天。 但,要判断是闰年还是平年 A. 二月,平年有28天,闰年有29天。 b. 闰年共有366天(1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31...
  • 题目: 输入某年某月某日,判断这一天是这一年的第几天?...month=int(input("请输入月份:")) day=int(input("请输入当前月份几号:")) # 平年的二月份只有28天 months1=[0,31,59,90,151,181,212,243,2
  • 输入某年某月某日,判断这一天是这一年的第几天? Demo: 输入的日期为2017/03/05,是2017年的第几天? 输入的日期为2012/03/05,是2012年的第几天? 案例分析: 每个月份天数不同 闰年与平年的2...
  • 题目: 输入一个日期,打印出这一天是该年的第几天 示例: 输入日期 请输入日期,格式YYYY MM DD:2020 04 17 打印结果 ...2020 04 17是2020年的第108天 ...首先,此题的☸核心☸...最后,将该月前面月份天数与该...
  • 判断第几天(Python

    2020-02-23 21:35:13
    判断第几天要实现的功能:输入具体时间,判断是一年中的第几天。...(2)一年中各月份对应的天数可以用不同的数据结构表示,1.0,2.0,3.0,4.0分别用元组,列表,集合和字典表示。 1.0:将每月对应的天...
  • 输入某年某月某日,判断这一天是第几天? 分析: 每个月份天数不同 闰年与平年的二月份天数不同 闰年判断: (1)四年一闰,百年不闰。 y%4 == 0 & y%100 != 0 (2)四百年再闰。 y%400 == 0 必备...
  • 同时还有另外一个因素要考虑–如果是闰年且输入月份大于3时需考虑多加一天 我们先来看第一部分,先把要用的年月日定义出来,方便等会从键盘输入。同时我们已经知道如果是第一个月有31天,第二个月是闰年的话是31+28...

空空如也

空空如也

1 2 3
收藏数 59
精华内容 23
关键字:

python输入月份判断天数

python 订阅