Why DateTime.AddHours doesn't seem to work?
Dates are immutable objects, i.e. they cannot be modified after creation. DateTime.AddHours returns a new DateTime instance which is shifted backwards by 4 hours but "date" will not be modified.
Use:
DateTime newDate = date.AddHours(-4);
AddHours
returns a new DateTime
object which is the result of adding the hours onto the original. The original is left unchanged.
Thus you want date = date.AddHours(-4);
instead of just date.AddHours(-4);