お世話になっております。
XP,Delphi2007です。
現在の時刻をunixタイムスタンプに変換するには、どうしたらよいでしょうか。
1970年1月1日0:00から現在の時刻までの秒数を計算すればよいと思うのですが、それを求めるためにどうしたらよいか分かりません。
よろしくお願いします。
>1970年1月1日0:00から現在の時刻までの秒数を計算すればよいと思うのですが、
>それを求めるためにどうしたらよいか分かりません。
DaysBetween 関数で、現在の日付の0:00までの日数を取得し、それを秒数に。
現在の日付の0:00からの現在の時刻までの秒数を算出し、加算。
でいかがですか?
だよね
function DateTimeToUnix(aDateTime: TDateTime): Integer;
begin
result := Round((aDateTime - StrToDate('1970/01/01')) * (60*60*24));
end;
>DaysBetween 関数で、現在の日付の0:00までの日数を取得し、それを秒数に。
>現在の日付の0:00からの現在の時刻までの秒数を算出し、加算。
>でいかがですか?
上のようにわざわざ2つに分ける必要なく、
“算数の問題”さんが提示したように、2つの値の差を秒数にするほうが、簡単でしたね。
酔ってるのでとんちんかんな事書いてるかもしれませんが、
TDateTimeの0が 1899 年 12 月 30 日午前 12:00
だから常に+71年 = 71*60*60*24するだけす。
定数なので一回の加算で処理した方がスマートかと。
DateTimeToUnix関数ではだめなんでしょうか。
昨日の書き込みは無視してやってください。
すみません…。
ありがとうございます。
result := Round((aDateTime - StrToDate('1970/01/01')) * (60*60*24));
でよかったです。
ありがとうございました。
ツイート | ![]() |