2016-03-20 9 views
1

私は人間が判読できる日付に900などの数値を計算するものに取り組んでいます。日にちを取得する900日前

私は365年を1年0ヶ月に変更しました& 0日。 しかし、365を20/3/15にするにはどうすればいいですか

答えて

3

ルア標準ライブラリosは、そのようなものの時刻と日付を提供します。 しかし、他のライブラリも使用できます。例:wxLua

まずあなたは、現在の時間を必要とする:

local currentTimeInSeconds = os.time() 

次に、あなたが時間内に戻って行く必要があります。 Remeber 2016は閏年です!だから365の代わりに366日後に行かなければならない。

local timeAgo = 366 * 24 * 60 * 60 

次に、あなたに出力

20/03/15

を与える日付

print(os.date("%d/%m/%y", currentTimeInSeconds - timeAgo)) 

に時間を秒単位で変換するには()を呼び出しos.date

詳細については、Lua 5.0 PILを参照してください。

2
local t = os.date("*t", os.time()) 
t.day = t.day - 900 
local ago = os.time(t) 

agoは、900日前のタイムスタンプです。

print(os.date("%d/%m/%y", ago)) 
+0

Luaはうるう年を考慮して365日ではなく1年を減算する必要があります。 – Piglet

+0

質問の本文には、1年ではなく365日と書かれています。とにかく、質問タイトルとして「900」を例に挙げました。 –

+0

[エラー](http://pastebin.com/wbU3vbg5)[コード](http://pastebin.com/d2aJuVqQ) – theLMGN

関連する問題