I am trying to perform some date arithmetic in a function.
from datetime import datetime, timedelta
def foo(date1, summing_period):
current_period_start_date = date1 - timedelta(days=summing_period)
# Line above causes the error:
# TypeError: unsupported type for timedelta days component: datetime.datetime
First arg is a datetime obj and 2nd arg is an integer
What is causing this error, and how do I fix it?
summing_period
should be an integer (representing the number of days), not a datetime
object.
>>> timedelta(days=datetime.now())
TypeError: unsupported type for timedelta days component: datetime.datetime
>>> timedelta(days=5)
datetime.timedelta(5)
If you want use arg on function, try something like this:
from datetime import timedelta, datetime
def fromdate(howManyDaysYouWantToBack):
searchingDate = datetime.today() - timedelta(days=howManyDaysYouWantToBack)
timestampSearchingDate = (int(searchingDate.timestamp()))
return timestampSearchingDate
Argument, on this case is days=float, you need to get this value from some place on your code, for example:
howManyDaysYouWantToBack = float(input("How many days you want to back? "))
You can use "float" or "int", on both cases this function will be works.
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