0

I want to add time given by user to another time and increment it for n number of times

start_time = '7:00' #these values will be taken as string by user
hour_time = '0:30'
increment_var = 5

time_var = datetime.strptime(start_time, '%H:%M')
difference_time = datetime.strptime(hour_time, '%H:%M')

time_var2 = difference_time.time()

Tried this

timed = timedelta(
    hours=time_var2.hour, minutes=time_var2.minute)

for num in range(increment_var):
    diffrence = time_var + timed
    print(diffrence)

And it gives me

1900-01-01 07:30:00
1900-01-01 07:30:00
1900-01-01 07:30:00
1900-01-01 07:30:00
1900-01-01 07:30:00

While I'm expecting something like

1900-01-01 07:30:00
1900-01-01 08:00:00
1900-01-01 08:30:00
1900-01-01 09:00:00
1900-01-01 09:30:00

And same results with

for num in range(increment_var):
    timed = timedelta(hours=time_var2.hour,
                      minutes=time_var2.minute)
    difference = time_var + timed
    print(difference)
martineau
  • 119,623
  • 25
  • 170
  • 301
udaykls
  • 39
  • 7
  • 1
    Why do you expect the first 2 time points to be the same? You have `1900-01-01 07:30:00` twice in your expected output, then it starts incrementing – roganjosh Jan 21 '20 at 23:18
  • 1
    Anyway, the reason that nothing increments at all is because `time_var` never gets altered, so you just keep adding the increment to the same base value. On each loop you need `time_var = time_var + timed` – roganjosh Jan 21 '20 at 23:22
  • @roganjosh I've edited the question. That was a mistake – udaykls Jan 21 '20 at 23:23

2 Answers2

1

Can you see why this code below works?

for num in range(increment_var):
    timed = timedelta(hours=time_var2.hour,
                      minutes=time_var2.minute)
    time_var = time_var + timed
    print(time_var)
1

You didn't update time in the for loop

for num in range(increment_var + 1):
    print(time_var)
    time_var += timed
user8314628
  • 1,952
  • 2
  • 22
  • 46