Benim çözümüm şöyle olabilir.
A,B,C isimli 3 programda saati farklı göstereceğini varsayalım.
Veri tabanında Bir tabloda her program için 1 kayıt tutardım ve bu kayıtlarda gerçek saate göre programın göstermesi gereken farkı tutardım eksi yada artı olarak.
A - artı - 16
B - artı - 0
C - eksi - 8
A programı açıldığında tablodan A ya ait kaydı okurum.
A - artı - 16
Gerçek saate 16 rakamını eklerim ve kullanırım.
B için artı 0 eklerim. Ama sıfır olduğu için gerçek saat aynen kalmış olur.
C içinde eksi olduğu için 8 çıkarırım.
Eğer zamanla bu artı eksi saatler değişecekse o zaman tablodaki kayıtlarda tarihte tutmak gerekir.
A  -  20-10-2015  artı 16
A - 10-05-2017  artı 18
B  - 20-10-2014  artı 6
B - 10-05-2017  artı 0
... gibi
Hangi tarihte hangi artı eksi saatleri kullanacaksın yine bulunabilir.
Eğer saat değilde dakika olarak farklı olacaksa o zaman tabloda saat değil dakika farkı tutmak gerekir.
Mesela 10,5 saat tutacaksan 10x60 = 600 birde buçuk var 30 dakkada ordan 630 tutman gerekir.
Saatler her program için sabitse ve değişme ihtimali kesinlikle yoksa.
O zaman tabloda değilde program kodunada gömülebilir saat farkları. Ama ne olur ne olmaz diye tarih ile birlikte tabloda tutmak gerekir.