В моей стране официальное время меняется в первый месяц весны и осени. Когда меняется официальное время, меняются и часы моего мобильного телефона и ПК.
Как эти устройства узнают, что есть изменения?
if (date=DST_START) then hour=hour+1 else if (date=DST_END) then hour=hour-1
обычно этого достаточно, но если правила меняются (например, в Северной Америке в 2007 году), вам необходимо загрузить обновление ОС. Кроме этого, единственный недостаток заключается в том, что если системные часы неправильные (например, разряженная батарея материнской платы), то он не может знать, когда нужно изменить время (но это не имеет значения, так как вам все равно нужно установить дату и время).