datetime小练习
题目:
1.计算你的生日比如近30年来(1990-2019),每年的生日是星期几,统计一下星期几出现的次数比较多
2,生日提醒,距离生日还有几天
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan '''
1.计算你的生日比如近30年来(1990-2019),每年的生日是星期几,统计一下星期几出现的次数比较多
2,生日提醒,距离生日还有几天
''' import datetime def get_week_day(date):
week_day_dict = {0: '星期一', 1: '星期二', 2: '星期三', 3: '星期四', 4: '星期五', 5: '星期六', 6: '星期日'}
return week_day_dict[date.weekday()] def q1(str0):
year = int(str0.split('-')[0])
month = int(str0.split('-')[1])
day = int(str0.split('-')[2])
dict0 = {'星期一': 0, '星期二': 0, '星期三': 0, '星期四': 0, '星期五': 0, '星期六': 0, '星期日': 0, } # 准备计数
for i in range(1990, 2020):
str_temp = str(i) + '-' + str(month) + '-' + str(day) # 转成字符串
dt_temp = datetime.datetime.strptime(str_temp, '%Y-%m-%d') # 转成date对象
dict0[get_week_day(dt_temp)] += 1 # 计数君
print('%s年的生日是:%s' % (i, get_week_day(dt_temp))) list(dict0.values()).sort()
max_num = list(dict0.values())[-1] # 最大的数
list0 = list(dict0.keys())
list1 = []
for i in list0:
if dict0[i] == max_num:
list1.append(i)
print('%s出现的次数最多,达到了%s次。' % (list1, max_num))
print('-' * 50) # 分隔线 def q2(str0):
today = datetime.date.today()
current_year = str(today).split('-')[0] # 2019
cur_year_bir = current_year + str0[4:] # 今年生日
dt = datetime.datetime.strptime(cur_year_bir, '%Y-%m-%d') # 今年生日
m = dt.strftime('%j')
n = datetime.datetime.today().strftime('%j')
if int(m) > int(n): # 今年生日还没到
print('距今年生日还有%s天' % (int(m) - int(n)))
elif int(m) < int(n): # 今年生日已过,求到明年生日还有多少天
print('距明年生日还有%s天' % (365 - (int(n) - int(m)))) # 不考虑闰年
else:
print('今天就是生日') def run():
#str0 = '1987-3-28'
str0 = input('请输入你的生日,如:1950-1-1')
q1(str0)
q2(str0) if __name__ == '__main__':
run()
datetime小练习的更多相关文章
- DateTime小综合
实现效果: 关键知识: 1>DateTime类的ToString()方法: 2>DateTime类的IsLeapYear(); 3>DateTime类的DaysInMomth(); ...
- Mysql 数据类型使用说明
FLOAT 和DOUBLE 类型支持使用标准的浮点运算进行近似计算. DECIMAL类型用于存储精确的小数. 因为cpu不支持对DECIMAL的直接计算,所以在Mysql5.0及更高的版本中,MYSQ ...
- 存储引擎和表的操作(mysql中的数据类型、完整性约束)
一.存储引擎 .概念 MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力. 通过选择不同的技术 ...
- MySQL/MariaDB数据类型
1.为什么要定义MySQL数据类型 定义MySQL数据类型其实就是为了对数据进行分类,实现对不同的分类进行不同的处理 1.使系统能够根据数据类型来操作数据. 2.预防数据运算时出错.例如,通过强大的数 ...
- 读高性能MySql笔记
1.1 MySQL逻辑架构 MySql服务器逻辑架构图 1.连接管理与安全性 每个客户端连接都会在服务器进程中拥有一个线程,这个连接的查询只会在这个单独的线程中执行,该线程只能轮流在某个CPU核心或者 ...
- MySQL Schema与数据类型的优化
选择优化的数据类型: 1. 更小的通常更好: 一般情况下,应该尽量使用可以正确存储数据的最小数据类型.更小的数据类型通常更快,因为他们占用更少的磁盘,内存和cpu缓存,并且处理时需要的cpu周期也更少 ...
- MySQL优化十大技巧
转自:https://m.2cto.com/database/201701/557910.html MYSQL优化主要分为以下四大方面: 设计:存储引擎,字段类型,范式与逆范式 功能:索引,缓存,分区 ...
- 2-14-2 MySQL数据类型
MySQL数据类型: 对数据进行分类,针对不同分类进行不同的处理. 1. 使系统能够根据数据类型来操作数据. 2. 预防数据运算时出错. 3. 更有效的利用空间. 数据分类,可以使用最少的存储,来存放 ...
- 对MySQL数据类型的认识
简述 良好的逻辑设计和物理设计是高性能系统的基石,比如反范式设计可以加快某些类型的查询同时也会影响另外一些类型的查询效率,所以我们必须重视Mysql对于数据库的设计(本文主要讲述表字段类型对于数据库性 ...
随机推荐
- pigofzhou的巧克力棒
Description 众所周知,pigofzhou有许多妹子.有一天,pigofzhou得到了一根巧克力棒,他想把这根巧克力棒分给他的妹子们.具体地,这根巧克力棒长为 n,他想将这根巧克力棒折成 n ...
- 开源系统源码分析(filter.class.php)
<?php class baseValidater { //最大参数个数 const MAX_ARGS=3; public static function checkBool($var) { r ...
- CentOS下安装jdk1.8.0_181
我安装的为 jdk1.8.0_181 1.检查是否存在open jdk,不存在直接跳到第 5 步 java -version 查看当前系统自带的open jdk版本信息 2.查看包含java字符串的文 ...
- 使用 docker 安装多版本的 MySQL
原文:使用 docker 安装多版本的 MySQL 首先从 docker 官网下载安装 docker. 检查 docker 安装是否成功,出现类似下面的信息就是安装好了 $ docker versio ...
- JQ each 各种标签
类选择器: $("input[class=class1]").each(function(){ alert($(this).val()); }); ID选择器: $("i ...
- EC2 开启 IPV6 访问 和 禁止重启后自动分配IP地址
EC2 开启 IPV6 访问 和 禁止重启后自动分配IP地址进入 VPC 控制台,对当前 VPC 添加 IPV6 CIDR 块对该 VPC 的路由表进行修改,添加其它路由,第一个空填::/0,第二个空 ...
- Spark 1.6.1 源码分析
由于gitbook网速不好,所以复制自https://zx150842.gitbooks.io/spark-1-6-1-source-code/content/,非原创,纯属搬运工,若作者要求,可删除 ...
- idea python notebook连接pyspark
1.启动pyspark 2.查看pyspark服务的token jupyter notebook list 查看正在运行的notebook服务以及他们的token 3.在idea里运行noteboo ...
- Laravel输出sql语句
$queries = DB::getQueryLog();
- 【Django】Form组件
目录 Form组件介绍 常用字段与插件 Form组件中所有内置字段 从数据库中获取数据 校验示例 检验手机号是否合法 方式一(基本操作) 方式二(自定义验证规则) 方式三(利用钩子) 验证密码一致性 ...