@dbannon - LOL
You know the 15, 30, and 45 min changes things a little.
I wont be able to use NowUTC +- Integer / 24 as the calculation but have to do something like this.
I have on the Airport records -420 (Phoenix)
So I divide - 420 by 60 = -7
Bit1 := ExtractWord(8,Airport,[8,['|']); // -4200
Offset := (StrToInt(Bit1)) / 24; <=== This would cause a runtime error
if it were 7.5 hours or -570
So
Bit1 := ExtractWord(8,Airport,[8,['|']); // = '-4200'
Sign := Copy(Bit1,1,1); // positive or negative
Bit2 := Copy(Bit1,2,7); // Copy just the number
Bit2 ;= Trim(Bit2);
Offset := (StrToFloat(Bit2)) / 24; // Convert to a float and divide by 24
// This will handle the odd min
if Sign = '-' then TDT := NowUTC - Offset
else if Sign = '+' then TDT := NowUTC + Offset;