В переменной wDownTimeS1Hx нужно записать секунды, как раз 509, а записываются миллисекунды.
Из-за неправильного преобразования типов такая история?
wDownTimeS1Hx это что за тип? Откуда вы решили что у вас неправильно? До каких пор вы будете скринить непойми что? Люди скоро вас материть начнут. Если что то не работает, скидывайте исходники...