I am trying to make an array of dates in mmddyyyy format. The dates will start on the current day and then go two weeks into the future. So it all depends on the starting date. When I run my code I get an error that states:
Traceback (most recent call last):
File "timeTest.py", line 8, in <module>
day = datetime.timedelta(days=i)
AttributeError: type object 'datetime.datetime' has no attribute 'timedelta'
I am not sure why this is happening because after searching online, I noticed that people are using the 'timedelta' in this way.
Here is my code:
import time
from datetime import datetime, date, time, timedelta
dayDates = []
today = datetime.now()
dayDates.append(today.strftime("%m%d%Y"))
for i in range(0,14):
day = today + datetime.timedelta(days=i)
print day
Python timedelta class. The timedelta is a class in datetime module that represents duration. The delta means average of difference and so the duration expresses the difference between two date, datetime or time instances. By using timedelta, you may estimate the time for future and past.
import time from datetime import datetime, date, time, timedelta dayDates = [] today = datetime.now() dayDates.append(today.strftime("%m%d%Y")) for i in range(0,14): day = today + datetime.timedelta(days=i) print day
The error that you are getting says, that datetime
has no attribute timedelta
. It happens, because you have imported from datetime
specific things. In order to access timedelta
now you type timedelta
instead of datetime.timedelta
.
import time from datetime import datetime, date, time, timedelta dayDates = [] today = datetime.now() dayDates.append(today.strftime("%m%d%Y")) for i in range(0,14): day = today + timedelta(days=i) print day
Like that, your code should work properly. Also, pay closer attention to the error messages and try to read them carefully. If you focus enough, you often can sort out the problem basing on them on your own.
You already imported timedelta
. You don't need to access it through datetime.
import time from datetime import datetime, date, time, timedelta dayDates = [] today = datetime.now() dayDates.append(today.strftime("%m%d%Y")) for i in range(0,14): day = today + timedelta(days=i) print day
The method you want to call is datetime.timedelta
, as seen here. datetime
is the module containing timedelta
.
If you look at your import
line:
from datetime import datetime, date, time, timedelta
...you'll see you're importing the datetime
class from the datetime
module. So, when you call datetime.timedelta
, you're actually calling datetime.datetime.timedelta
, which doesn't exist.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With