[Answered ]-Calculate the number of deltas between two dates

1👍

Let me know if this helps

    #calculate delta between two dates
    def delta_days(start_date, end_date):
        start = datetime.strptime(start_date, "%m/%d/%Y")
        end = datetime.strptime(end_date, "%m/%d/%Y")
        delta = end - start
        return delta.days

0👍

I’ve used this solution for now. It doesn’t feel very clean but it works.

        start_date = self.cleaned_data['from_date']
        iterations = 0
        while start_date < self.cleaned_data['to_date']:
            iterations += 1
            start_date += relativedelta(days=self.cleaned_data['delta_days'], weeks=self.cleaned_data['delta_weeks'], months=self.cleaned_data['delta_months'])
        if iterations > 36: raise ValidationError('The selected date range and deltas result in too many dates to calculate. Please reduce scope to 36 or less dates.')
👤rcx935

0👍

try this one. First you have to convert date difference and relative delta to days (integer) to perform the arithmetic you needed

delta=relativedelta(days= self.cleaned_data['delta_days'], months=self.cleaned_data['delta_months'])
no_loops = (self.cleaned_data['to_date'] - self.cleaned_data['from_date']).days / delta.days
if no_loops > 36: raise ValidationError('Too many iterations.')

Leave a comment