Code:

procedure AM_or_PM;

begin

  if Frac(Time) = 0 then

    ShowMessage('AM')

  else

    ShowMessage('PM');

end;

 

HKEYLocalMachine/Software/Microsoft/Windows/CurrentVersion/TimeZones/ - место, где в регистре хранится информация о временных зонах (Timezone). Двоичный код 'TZI' хранит информацию о начале и конце летнего времени. Есть какие-нибудь идеи насчет извлечения этих дат из этой двоичной величины?

 Попробуем описать решение тут:

Code:

procedure TForm1.Button4Click(Sender: TObject);

var

lt: TSYSTEMTIME;

st: TSYSTEMTIME;

begin

GetLocalTime(lt);

GetSystemTime(st);

Memo1.Lines.Add('LocalTime = ' +

   IntToStr(lt.wmonth) + '/' +

   IntToStr(lt.wDay) + '/' +

   IntToStr(lt.wYear) + ' ' +

   IntToStr(lt.wHour) + ':' +

   IntToStr(lt.wMinute) + ':' +

   IntToStr(lt.wSecond));

Memo1.Lines.Add('UTCTime = ' +

   IntToStr(st.wmonth) + '/' +

   IntToStr(st.wDay) + '/' +

   IntToStr(st.wYear) + ' ' +

   IntToStr(st.wHour) + ':' +

   IntToStr(st.wMinute) + ':' +

   IntToStr(st.wSecond));

end;

 

 

Code:

function Is24HourTimeFormat: Boolean;

var

  DefaultLCID: LCID;

begin

  DefaultLCID := GetThreadLocale;

  Result := 0 <> StrToIntDef(GetLocaleStr(DefaultLCID,

    LOCALE_ITIME,'0'), 0);

end;