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.