Q&A

  • 1970년1월1일 부터 초로된 값을 날짜로 변환...
먼저 감사드리고요 ^^

c 에서 cTime 같은 함수가 델파이에 있나요...

unix 에서 1970-01-01 일부터 현재일까지 초를 계산한 값을

받았는데 이걸 날짜로 변환 하려고 합니다.

0x3e0c1a5f == Fri Dec 27 09:16:15 2002

함수가 있나해서요 아무리 찾아도 없네요 ...
3  COMMENTS
  • Profile
    하얀까마귀 2003.01.18 01:57
    안녕하세요 하얀까마귀 입니다.
    TDateTime 이라는 클래스가 있습니다.

    이건 소숫점 이하자리가 초구 정수값이
    날짜를 가르키는 값입니다.

    그럼.
    즐거운 시간 되세요..

  • Profile
    이대성 2003.01.18 02:28
    TDateTIme Type을 사용하려면

    Double 형의 값을 넣어야 되는거 같은데요..Sample보면

    var
      Present: TDateTime;
    begin
      Present:= 35065;  // "1/1/1996" 임
      DecodeDate( Present, Year, Month, Day); // 이걸로 알수 있는데

    근데 16진소로 된 "0x3e0c1a5f " 이값을 바로

    넣어서 날짜를 알수 없을까 해서요

    16진수를 계산해서 35065 같은 값을 만들기가 ^^

    62x2^24 + 12x2^16... 이런식으로 계산을 하자니 헠 T_T...

    부탁드립니다...


  • Profile
    최용일 2003.01.18 03:53
    안녕하세요. 최용일입니다.

    그냥 기준일인 1970-01-01 에 계산된 초값을 더하세요...

    var
        BaseDateTime: TDateTime;
        DateCount, TimeCount: Integer;
        ResultDate: TDateTime;
        TotalSecs: Integer;
    begin
        BaseDateTime := StrToDateTime('1970-01-01 00:00:00:00');
        TotalSecs := $3E0C1A5F;
        DateCount := TotalSecs div SecsPerDay;
        TimeCount := TotalSecs mod SecsPerDay;
        ResultDate := BaseDateTime + DateCount + TimeCount/SecsPerDay;
        ShowMessage('Result: ' + DateTimeToStr(ResultDate));
    end;

    ^^ 항상 즐코하세요...