• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Zeit und Name anzeigen

docfred

Geocacher
Habs grad mit Whereyougo getestet und leider liefert die Zeitfunktion das Sommerzeit-Flag nicht.

Die Sommerzeit beginnt am letzten Sonntag um 2.00Uhr im März und endet
zum gleichen Zeitpunkt im Oktober.
Das müsste man mit einer Formel abbilden und ggf ein oder zwei Stunden hinzuzählen. Leider ändert sich u.U. auch Tag und Monat. Will man nur die Zeit kann man das außer Acht lassen.

docfred
 

fresh89

Geocacher
Danke dir für die ausführlichen Antworten!

Das es aber so komliziert sein wird, hätte ich am Anfang nicht gedacht! Naja, da die Uhr aber bei mir nicht zwingend dabei sein muss, lass ich sie einfach weg.
Das Beispiel unter dem Link mit dem Busplan, wäre immerhin eine Möglichkeit zum Einstellen.
 

docfred

Geocacher
Hab mal versucht eine korrekte Zeit zu berechnen auf der Basis von UTC, einer Zeitzone und berechneter Sommerzeit. Müsste auf jedem Player die richtige Zeit liefern.


Code:
timezone = 1 --Das mus zu UTC addiert werden (ohne Sommerzeit)

function correct_time()
	local time = os.date("!*t")
	local hour = time.hour
	local day = time.day
	local month = time.month
	local wday = time.wday
	local isdst 
	local max_month = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
 
       --Ermitteln ob SZ	
	if month  < 3 or month > 10 then -- Monate ohne SZ
		isdst = false
	else if month > 3 and month < 10 then -- Monate mit SZ
		isdst = true
	else if month == 3 then 
		if (wday - day) < 24 then
			isdst = false
		else
			if wday == 1 and hour <2 then -- Sonntag und vor 2Uhr
				isdst = false
			else
				isdst = true
			end
		end
	else if month == 10 then
		if (wday - day) < 24 then
			isdst = true
		else
			if wday == 1 and hour <2 then
				isdst = true
			else
				isdst = false
			end
		end
	end
	
	-- Neues Datum berechnen
	hour = hour + timezone
	if isdst  then
		hour = hour + 1
	end
	if hour > 23 then --Neuer Tag
		hour = hour -24
		wday = wday +1
		if wday == 8 then
			wday = 1
		end 
		day = day + 1
		if day > max_month[month] then -- Neuer Monat
			day = 1
			month = month +1
			if month > 12 then -- Neues Jahr
				month = 1
				time.year = time.year +1
			end
		end
	end
	time.hour = hour
	time.day = day
	time.month = month
	time.isdst = isdst
	time.wday = wday
	return time 
end

Mein Problem: URWIGO meint, da würde ein "end" fehlen. Hab ich Tomaten auf den Augen?
docfred
 
Oben