안녕하시어요..
넘넘.. 많은 고민을 했어요..
도저히 안되어서.. (__);
질문1. 아래와 같은 함수를 만들었답니다.
Delphitime -> Unixtime , Unixtime -> Delphitime 를 하기 위해서.
근데 정답이 아닌듯 해보입니다.
윤년계산이 안된건지.
머가 문젤까요?
좀 도와 주세요~~ Help me please..
function UnixToDate(UnixTime: DWORD): TDateTime;
begin
Result := EncodeDate(1970, 1, 1) + UnixTime / (24*60*60);
end;
function DateToUnix(Delphitime: TDateTime):Dword;
var
a,b,c :word;
begin
Result := Trunc(((DelphiTime - EncodeDate(1970, 1, 1))*24*60*60));
end;
procedure TForm1.Button1Click(Sender: TObject);
VAR
Str : String;
begin
Str := inttostr(DateToUNIX(strtodatetime('2002-01-28 13:50:05') ));
Memo1.Lines.Add(str);
end;
나온값: 1012225805;
unix 정답값 : 2002-01-28 (13:50:05) -> 1012193405
예제를 작성해 보지를 못해서 맞는지 모르겠습니다
잘 되면 리플 달아주세요...^^
function UNIXTimeToDateTime(UnixTime: LongWord): TDateTime;
var
TimeZoneInformation: TTimeZoneInformation;
begin
GetTimeZoneInformation(TimeZoneInformation);
Result := StrToDate('01/01/1970') +
(UnixTime/(24*3600)) -
((TimeZoneInformation.Bias + TimeZoneInformation.DaylightBias) /
(24 * 60));
end;
function DateTimeToUNIXTime(DelphiTime : TDateTime): LongWord;
var
MyTimeZoneInformation: TTimeZoneInformation;
begin
GetTimeZoneInformation(MyTimeZoneInformation);
Result := round(DelphiTime - StrToDate('01/01/1970') +
((MyTimeZoneInformation.Bias) / (24 * 60))) *
(24 * 3600);
end;