使用循环天添加到Python中的日期,范围和切片
我在python初学者,我最近才知道怎么做的基本知识:使用循环天添加到Python中的日期,范围和切片
功能,循环,范围为/如果语句和字符串切片。
到目前为止,我有:
date = raw_input("Enter the date checked out in YYYY-MM-DD format: ")
dueDate = raw_input("Book is due:")
length = len(date)
counter=0
for i in range(length):
if date[i] == "-":
counter = counter + 1
if 1 < counter < 2:
print date
if counter > 2:
print date,"too many hyphens"
if counter <= 1:
print date,"not enough hyphens"
然后,我有:
year = date[0:4]
month = date[4:6]
day = date[6:10]
if year == date[0:4]:
year=year
if month == date[4:6]:
month = month
if day == date[6:10]:
day=day
print year+month+day
我试图把它分解成YYYY-MM-DD,然后从计算由于日起7日内用户输入的日期。
该程序的第二部分没有与第一部分一起工作,我不知道如何将它们结合起来(或者如果那应该存在的话)我必须使用函数吗?
闰年不需要考虑,我不能使用模块,如日期时间和时间,因为我没有学到它们,我想写所有代码使用不同的循环变化和/ elif语句。
如果有人能帮助我指向正确的方向,我会非常感激!
感谢,
d
我会给datetime
一试,即使你还没有学会呢。我不认为这很复杂或难以学习。使用它比任何自制酿造方法都容易得多。日期使用datetime.date()
,使用datetime.timedelta
可以添加(或减去)某些天数。
import datetime
datestr = raw_input("Enter the date checked out in YYYY-MM-DD format: ")
year,month,day = datestr.split('-')
date = datetime.date(year,month,day)
duedate = date + datetime.timedelta(days=7)
print 'Due date is : {0}'.format(duedate)
首先,您的代码很难在网站上阅读 - 清理它可能会有所帮助。
其次,看看日期时间模块。它提供了将文本转换为日期对象的服务,然后返回到文本。
一旦你有一个约会对象,你可以做一吨的东西,如:
Python 2.7 (r27:82508, Jul 3 2010, 21:12:11)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from datetime import datetime, timedelta
>>> d = datetime.strptime('2011-03-05','%Y-%m-%d')
>>> d
datetime.datetime(2011, 3, 5, 0, 0)
>>> d.strftime('%Y-%m-%d')
'2011-03-05'
>>> tomorrow = d+timedelta(days=1)
>>> tomorrow
datetime.datetime(2011, 3, 6, 0, 0)
>>> tomorrow.strftime('%Y-%m-%d')
'2011-03-06'
已经掌握了其他技术,我说你也应该学会关于异常和日期时间模块。这对日期验证很有用。
import datetime
while True:
try:
date = datetime.datetime.strptime(raw_input("Enter the date checked out in YYYY-MM-DD format: "), "%Y-%m-%d")
except ValueError:
print "The date was not inserted in the following format: YYYY-MM-DD"
else:
break
~
loskit,@dappawit,@tkone 感谢大家的帮忙!我非常感谢,我会尝试着通过这个程序开始工作,看看它会发生什么。 – pythonbeginner 2011-03-05 21:31:56
使用可以使用timedelta功能日期时间模块
from datetime import timedelta
New_date=DateTime_obj-timedelta(days=No. of days to add)
眼看你想这是一个给定的日期后一周的日期,上面的代码几乎是完美的,只是改变timedelta( days = 1)to timedelta(days = 7) – tkone 2011-03-05 21:15:12