算法练习 10:日期倒计时

题目描述:

 

在经济、科技日益发达的今天,人们对时间的把握越来越严格,对于一个一定影响力的公司的高管来说,他可能要将自己的行程提前安排到下个月。对于普通人来说,他也可能将几天之后的安排已经提前做好。请设计一个程序计算出今天距离未来的某一天还剩多少天。

假设今天是2015年10月18日

 


算法思路分析:

1、输入时间future_date

2、判断平闰年isLeapYear;

3、先计算2015-->future_date[0]的天数,闰年--366;平年--365;

4、计算当年和2015.10.18的各自的天数(闰年2月29),作减;

5、求和

代码练习:

def isLeapYear(Year):
    if (Year % 4 == 0 and Year % 100 != 0) or Year % 400 == 0:
        return True
    else:
        return False


def countDays_inDate(date):
    month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    days_indate = date[2]
    if isLeapYear(date[0]):
        month[2] = 29
    for i in range(1, date[1]):
        days_indate += month[i]
    return days_indate


future_date = map(int, raw_input().split('-'))
count_days = 0
for i in range(2015, future_date[0]):
    if isLeapYear(i):
        count_days += 366
    else:
        count_days += 365
count_days += (countDays_inDate(future_date) - countDays_inDate([2015, 10, 18]))
print count_days

基础知识备注:

1、闰年2月29,天数366;

2、熟练range()用法,range(a,b)是从a-->b-1;

3、map()的用法:

描述

map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

语法

map() 函数语法:

map(function, iterable, ...)

参数

  • function -- 函数,有两个参数
  • iterable -- 一个或多个序列

返回值

Python 2.x 返回列表

Python 3.x 返回迭代器。

吐槽一下csdn的博客,这篇博客我写了三遍,最后还是没保存下来,重新建了一个重新写才保存下来,要闹哪样!!! 哭

----------------------------------------------------------------------------------------------------------------------------

详细内容请关注公众号:目标检测和深度学习

----------------------------------------------------------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

女王の专属领地

您的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值