2016-03-20 5 views
1

Ich arbeite an einer Sache, die berechnet, dass eine Zahl von zB 900 in ein vom Menschen lesbares Datum verwandelt.Get date vor 900 Tagen

Ich habe 365 in 1 Jahr 0 Monate & 0 Tage. Aber, wie mache ich 365 in 20/3/15

Antwort

3

Lua Standard-Bibliothek OS bietet die Funktionen Zeit und Datum für solche Dinge. Aber kann auch andere Bibliotheken verwenden. Wie wxLua z.B.

Zuerst müssen Sie die aktuelle Uhrzeit:

local currentTimeInSeconds = os.time() 

Dann müssen Sie in der Zeit zurück gehen. Erinnerung 2016 ist ein Schaltjahr! Also müssen Sie statt 365 366 Tage zurück gehen.

local timeAgo = 366 * 24 * 60 * 60 

Dann rufen os.date()

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

die Zeit in Sekunden, um ein Datum zu konvertieren, die Ihnen die Ausgabe

20/03/15

Weitere Informationen finden Sie unter Lua 5.0 PIL

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

ago ist der Zeitstempel der Zeit vor 900 Tagen. Sie können das formatierte Datum erhalten, wie Sie wollen:

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

Sie sollten 1 Jahr statt 365 Tage abziehen, damit Lua Schaltjahre berücksichtigt. – Piglet

+0

Der Fragenkörper sagt 365 Tage statt 1 Jahr. Wie auch immer, ich habe '900' als Beispiel für den Titel der Frage verwendet. –

+0

[Fehler] (http://pastebin.com/wbU3vbg5) [Code] (http://pastebin.com/d2aJuVqQ) – theLMGN