Folgender Code:
[highlight=epc] /*-------------- DayOfYear ---------------------------------------------------------------*/
:begin GetDayOfYear()
:info $Arbeitet mit den globalen Variablen Year, Month und Day!!!$
:var result@
//------------- Umformung 1.1. des Jahres in UTC
:var strAnfangJahr@
strAnfangJahr@ = convert(Year,$$) + $-01-01-00-00-00$
:var anfangJahr@
anfangJahr@ = utc(strAnfangJahr@)
//------------- Umformung aktuelles Datum in UTC
:var strToday@
strToday@ = convert(Year,$$) + $-$ + stringformat(Month,0,3,2,2) + $-$ + stringformat(Day,0,3,2,2) + $-00-00-00$
:var today@
today@ = utc(strToday@)
//------------ Zeitdifferenz berechnen [ms als u64]
:var delta@
delta@ = today@ - anfangJahr@
///------------ Tage berechnen
:var days@
days@ = delta@ / 86400000u64 + 1u64;
///------------ Ergebnis als u16
result@ = convert(days@,0u16);
:return result@
:end [/highlight]
Es scheint, dass die Umformung des c1400 Strings in utc() nicht funktioniert - siehe Bild Debugger - denn sowohl für den 1.1.2014, als auch für den 16.5.2014 ergibt sich jeweils ein Wert von 0u64.
Da es nicht funktionierte, habe ich zunächst noch extra die umzuformenden Strings erstellt, um deren Format sehen zu können. In beiden Strings kann ich keine Abweichung von der Beschreibung im Handbuch erkennen:
Definition
● Funktion utc(Zeit)
Argumente
● Zeit als String im Forma(t) $YYYY-MM-DD-HH-MM-SS$, Datentyp c1400
Ich gehe davon aus, dass hier ein Fehler vorliegen muss...
[highlight=epc] /*-------------- DayOfYear ---------------------------------------------------------------*/
:begin GetDayOfYear()
:info $Arbeitet mit den globalen Variablen Year, Month und Day!!!$
:var result@
//------------- Umformung 1.1. des Jahres in UTC
:var strAnfangJahr@
strAnfangJahr@ = convert(Year,$$) + $-01-01-00-00-00$
:var anfangJahr@
anfangJahr@ = utc(strAnfangJahr@)
//------------- Umformung aktuelles Datum in UTC
:var strToday@
strToday@ = convert(Year,$$) + $-$ + stringformat(Month,0,3,2,2) + $-$ + stringformat(Day,0,3,2,2) + $-00-00-00$
:var today@
today@ = utc(strToday@)
//------------ Zeitdifferenz berechnen [ms als u64]
:var delta@
delta@ = today@ - anfangJahr@
///------------ Tage berechnen
:var days@
days@ = delta@ / 86400000u64 + 1u64;
///------------ Ergebnis als u16
result@ = convert(days@,0u16);
:return result@
:end [/highlight]
Es scheint, dass die Umformung des c1400 Strings in utc() nicht funktioniert - siehe Bild Debugger - denn sowohl für den 1.1.2014, als auch für den 16.5.2014 ergibt sich jeweils ein Wert von 0u64.
Da es nicht funktionierte, habe ich zunächst noch extra die umzuformenden Strings erstellt, um deren Format sehen zu können. In beiden Strings kann ich keine Abweichung von der Beschreibung im Handbuch erkennen:
Definition
● Funktion utc(Zeit)
Argumente
● Zeit als String im Forma(t) $YYYY-MM-DD-HH-MM-SS$, Datentyp c1400
Ich gehe davon aus, dass hier ein Fehler vorliegen muss...
Kommentar