日期时间案例演示

原创 2018年04月17日 13:53:50

案例:准备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

HTML5 localStorage使用演示代码实例---------评论

分享一段代码实例,它利用localStorage实现了本地留言板功能。 代码实例如下: 001002003004005006007008009010011012013014015016017018...
  • Return_KB
  • Return_KB
  • 2018-01-10 11:50:23
  • 76

Spark 机器学习-实例演示- K-Means《二》

1.K-Means简介 K-Means 是聚类的一个算法,是一个无监督学习,目标是将一部分实体根据某种意义上的相似度 和另一部分实体聚在一起。聚类通常被用于探索性的分析。  K-Means将n个观...
  • skynumone
  • skynumone
  • 2015-01-20 10:17:22
  • 3461

分布式服务dubbo框架的实例演示

  • 2015年03月07日 15:56
  • 20KB
  • 下载

学习爬虫基础5-一个简单的小案例

爬去百度贴吧中的html文档下来会使用到urllib中的 urllib.urlencode() 方法来编码发送请求时候的 请求参数 URL编码转换:urllib的urlencode()urllib ...
  • Demo_3
  • Demo_3
  • 2017-07-16 23:59:51
  • 252

Android学习历程--Sqlite的使用(商品展示案例)

一、何为Sqlite SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎,它是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且由于...
  • xiaoxiaobai123456
  • xiaoxiaobai123456
  • 2017-04-25 17:42:51
  • 200

SmartSWT软件截图

  • javaboy
  • javaboy
  • 2006-02-07 20:50:00
  • 1783

android 之SQLite案例--商品展示

我们学习了关于数据库的知识,对增删改查有了一定的了解。今天用安卓做一个小案例。要实现增删改查使用到ListView和SQLite数据库。步骤如下: 1.activity_main.xml   ...
  • zhaozhao_07
  • zhaozhao_07
  • 2017-04-23 17:05:24
  • 153

一个登陆小案例演示Servlet的使用

1.servletConfig对象和servletContext对象 servlet 容器使用的 servlet 配置对象,该对象在初始化期间将信息传递给 servlet ``` Servl...
  • teashui
  • teashui
  • 2016-05-31 01:30:57
  • 233

transcad交通规划实例

  • 2014年04月24日 18:42
  • 778KB
  • 下载

轨迹动画演示的例子

这里有一系列动态的曲线和曲面. 你或者可以直接观察, 或者可以将它们录入到菜单然后运行 (例如, 改变参数和选项). 逐步推进的平面曲线. (摆线) 展示.   将它的方程录入到菜单...
  • pizi0475
  • pizi0475
  • 2012-08-18 07:30:18
  • 1000
收藏助手
不良信息举报
您举报文章:日期时间案例演示
举报原因:
原因补充:

(最多只允许输入30个字)