案例:准备10个人姓名,然后为这10个人随机生成生日【都是90后】

1、统计出那些人是夏季【6月-8月】出生的。

2、最大的比最小的大多少天

3、谁的生日最早,谁的生日最晚

备注:春季【3-5】夏季【6-8】秋季【9-11】冬季【12-2】

演示:

from datetime import date, timedelta

from random import randint

def build_birthday(list_person_name:list):

初始化存储姓名:生日字典

    name_birthday ={}.fromkeys(list_person_name)

生成生日

    for key in name_birthday:

temp_year = randint(1990, 1999)

temp_month = randint(1, 12)

temp_day = randint(1, 30)

name_birthday[key] = date(temp_year, temp_month, temp_day)

返回

    return name_birthday

def person_birthday_summer(name_birthday:dict):

用于存储夏天出生的key

    list_person = []

for key in name_birthday:

if name_birthday[key].month >= 6 and name_birthday[key].month <= 8:

list_person.append(key)

返回

    return list_person

def get_person_year_max(name_birthday:dict):

在字典中提取出生日

    person_birth = list(name_birthday.values())

获取最大的生日

    max_birthday = sorted(person_birth)[len(person_birth)-1]

遍历

    for key in name_birthday:

if name_birthday[key] == max_birthday:

return key

def get_person_year_min(name_birthday:dict):

在字典中提取出生日

    person_birth = list(name_birthday.values())

获取最小的生日

    min_birthday = sorted(person_birth)[0]

遍历

    for key in name_birthday:

if name_birthday[key] == min_birthday:

return key

def get_person_days(name_birthday:dict):

在字典中提取出生日

    person_birth = list(name_birthday.values())

获取最大的生日

    min_birthday = sorted(person_birth)[0]

max_birthday = sorted(person_birth)[len(person_birth)- 1]

返回天数

    return (max_birthday-min_birthday).days

def get_person_early_birthday(name_birthday:dict):

for key in name_birthday:

name_birthday[key] = name_birthday[key].replace(year=1990)

person_birth = list(name_birthday.values())

return(sorted(person_birth)[0])

def get_person_later_birthday(name_birthday:dict):

for key in name_birthday:

name_birthday[key] = name_birthday[key].replace(year=1990)

person_birth = list(name_birthday.values())

return(sorted(person_birth)[len(person_birth)-1])

if __name__ == "__main__":

list_name = ["赵一""杨二""张三""李四""王五""赵六""马七""郑八""刘九","胡十"]

list_name中所有的学员生成生日

    name_birthday = build_birthday(list_name)

print(name_birthday)

调用功能模块

    birthday_summer_list =person_birthday_summer(name_birthday)

if len(birthday_summer_list) == 0:

print("没有人的生日是在夏天: ")

else:

print("生日为夏天的有:", birthday_summer_list)  需求一

    需求二

    print("生日最大的:", get_person_year_max(name_birthday))

print("生日最小的:", get_person_year_min(name_birthday))

print("最大比最小的天数:", get_person_days(name_birthday))

需求三

    date_early =get_person_early_birthday(name_birthday)

print("生日最大的是:%d%d"%(date_early.month,date_early.day))

date_later = get_person_later_birthday(name_birthday)

print("生日最小的是:%d%d% (date_later.month, date_early.day))

执行结果:

C:\python\python.exeC:/python/demo/file3.py

{'赵一':datetime.date(1992, 12, 30), '杨二': datetime.date(1995,6, 23), '张三': datetime.date(1990, 6, 21), '李四':datetime.date(1991, 9, 29), '王五':datetime.date(1996, 2, 26), '赵六':datetime.date(1995, 9, 18), '马七':datetime.date(1996, 7, 4), '郑八':datetime.date(1990, 3, 5), '刘九':datetime.date(1992, 3, 3), '胡十':datetime.date(1992, 11, 6)}

生日为夏天的有: ['杨二','张三','马七']

生日最大的: 马七

生日最小的: 郑八

最大比最小的天数: 2313

生日最大的是:2月26日

生日最小的是:12月26日

Process finished with exit code 0

Python中日期时间案例演示的更多相关文章

  1. [ Python入门教程 ] Python中日期时间datetime模块使用实例

    Python中datetime模块提供强大易用的日期处理功能,用于记录程序操作或修改时间.时间计算.日志时间显示等功能.datatime模块重新封装了time模块,提供的类包括date.time.da ...

  2. Python中日期和时间格式化输出的方法

    本文转自:https://www.jb51.net/article/62518.htm 本文实例总结了python中日期和时间格式化输出的方法.分享给大家供大家参考.具体分析如下: python格式化 ...

  3. Python中对时间日期的处理方法简单汇总

    这篇文章主要介绍了Python实用日期时间处理方法汇总,本文讲解了获取当前datetime.获取当天date.获取明天/前N天.获取当天开始和结束时间(00:00:00 23:59:59).获取两个d ...

  4. Python学习---日期时间

    在Python里面日期时间的功能主要由几个模块提供:time,calendar,datetime,date等 time主要用到的功能函数: #!/usr/bin/python3 # coding:ut ...

  5. Python实用日期时间处理方法汇总

    这篇文章主要介绍了Python实用日期时间处理方法汇总,本文讲解了获取当前datetime.获取当天date.获取明天/前N天.获取当天开始和结束时间(00:00:00 23:59:59).获取两个d ...

  6. python中的时间和时间格式转换

    1.python中的时间:要得到年月日时分秒的时间: import time #time.struct_time(tm_year=2012, tm_mon=9, tm_mday=15, tm_hour ...

  7. [转]JDBC中日期时间的处理技巧

    Java中用类java.util.Date对日期/时间做了封装,此类提供了对年.月.日.时.分.秒.毫秒以及时区的控制方法,同时也提供一些工具方法,比如日期/时间的比较,前后判断等. java.uti ...

  8. Python 中的时间处理包datetime和arrow

    Python 中的时间处理包datetime和arrow 在获取贝壳分的时候用到了时间处理函数,想要获取上个月时间包括年.月.日等 # 方法一: today = datetime.date.today ...

  9. 【Java 与数据库】JDBC中日期时间的处理技巧

    JDBC中日期时间的处理技巧 详谈Java.util.Date和Java.sql.Date 基础知识 Java中用类java.util.Date对日期/时间做了封装,此类提供了对年.月.日.时.分.秒 ...

随机推荐

  1. Linux 下面解压.tar.gz 和.gz文件解压的方式

    Linux 下面解压.tar.gz 和.gz文件解压的方式 两种解压方式 1 .tar.gz 使用tar命令进行解压 tar -zxvf java.tar.gz 解压到指定的文件夹 tar -zxvf ...

  2. js 之 this的用法

    该篇文章混合了比较多文章,由于自己也水平有限,大家就将就着看下吧,详情可以参看<JavaScript语言精粹>,不过文章提供了很多例子,供大家参阅思考. 首先关于this我想说一句话,这句 ...

  3. the first blog in 2017——《论作为程序员的我考研》

    怎么说,人总是有了压力才有动力.想来如今已经是2017年2月13日,2017年已经使用了43天,距离成绩出来还有3天.这个过年是最不充实的一个年,也是时间长达一个月久的“寒假”,因为“考研”.至于考到 ...

  4. jQuery实现两个DropDownList联动(MVC)

    近段时间原本是学习MVC的,谁知道把jQuery也学上了.而且觉得对jQuery更感兴趣,比如今早上有写了一个练习<jQuery实现DropDownList(MVC)>http://www ...

  5. .netcore入门

    开发环境:windows    编辑器: Visual Studio Code 环境安装: .Net Core 1.1 SDK     https://www.microsoft.com/net/co ...

  6. 用jQuery实现全选-全不选-反选的功能

    临近过年,刚学IT没多久的小白在这里祝大家在新的一年里:新春快乐,月月赚钱,天天开心,时时快乐,分分精彩,秒秒幸福,事事顺利 古人云:学而时习之,不亦说乎. 学习后经常温习所学的知识,也是件令人愉悦的 ...

  7. 看这一篇就够了,css选择器知识汇总

    对大多技术人员来说都比较熟悉CSS选择器,举一例子来说,假设给一个p标签增加一个类(class),可是执行后该class中的有些属性并没有起作用.通过Firebug查看,发现没有起作用的属性被覆盖了, ...

  8. CSS文字超出指定长度,用省略号

    overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display: block;

  9. ArcGIS Server + ArcGIS Portal 10.5

    1.安装IE11 2. 域名需要在C:\Windows\System32\drivers\etc\host文件中添加 127.0.0.1  机器名.域名 win2008.smartmap.com 19 ...

  10. Nginx的性能优化

    1.优化worker进程个数: 在高并发.高访问量的WEB服务场景,需要事先启动更多的nginx进程,以保证快速响应并处理大量并发用户的请求,优化nginx进程个数的配置项就是,在nginx.conf ...