java如何日历日期_如何生成偶数日历日期?

这里有一些相当简单的东西似乎可以工作并处理闰年:

from calendar import isleap

from datetime import date

# Days in each month (1-12).

MDAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

def dim(year, month):

""" Number of days in month of the given year. """

return MDAYS[month] + ((month == 2) and isleap(year))

start_year, end_year = 2018, 2021

for year in range(start_year, end_year+1):

for month in range(1, 12+1):

days = dim(year, month)

for day in range(1, days+1):

if day % 2 == 0:

dt = date(year, month, day)

print(dt.strftime('%a, %d %b %Y'))

输出:

Tue, 02 Jan 2018

Thu, 04 Jan 2018

Sat, 06 Jan 2018

Mon, 08 Jan 2018

Wed, 10 Jan 2018

Fri, 12 Jan 2018

Sun, 14 Jan 2018

Tue, 16 Jan 2018

...

Edit:

这是一种方法(我认为)你在后续问题中提出了如何做的事情:

from calendar import isleap

from datetime import date, datetime, time

from random import randrange

# Days in each month (1-12).

MDAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

def dim(year, month):

""" Number of days in month of the given year. """

return MDAYS[month] + ((month == 2) and isleap(year))

def whenever():

""" Gets the time value. """

# Currently just returns a randomly selected time of day.

return time(*map(randrange, (24, 60, 60))) # hour:minute:second

start_year, end_year = 2018, 2021

for year in range(start_year, end_year+1):

for month in range(1, 12+1):

days = dim(year, month)

for day in range(1, days+1):

if day % 2 == 0:

dt, when = date(year, month, day), whenever()

dttm = datetime.combine(dt, when)

print(dt.strftime('%a, %d %b %Y'), when, '-', dttm)

输出:

Tue, 02 Jan 2018 00:54:02 - 2018-01-02 00:54:02

Thu, 04 Jan 2018 10:19:51 - 2018-01-04 10:19:51

Sat, 06 Jan 2018 22:48:09 - 2018-01-06 22:48:09

Mon, 08 Jan 2018 06:48:46 - 2018-01-08 06:48:46

Wed, 10 Jan 2018 14:01:54 - 2018-01-10 14:01:54

Fri, 12 Jan 2018 05:42:43 - 2018-01-12 05:42:43

Sun, 14 Jan 2018 21:42:37 - 2018-01-14 21:42:37

Tue, 16 Jan 2018 08:08:39 - 2018-01-16 08:08:39

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值