Hallo,
ich wollte die Daten einer Woche berechnen.
Sprich das Datum von einer Woche von Mo bis So.
Da gibt es natürlich das Problem, dass wenn bspw. der 31. ist und man 2 dazuzählt eine 33 heauskommt, es aber dann eigentlich eine 2 sein sollte.
So, im Switch-Statement habe ich die Berechnung reingeklatscht, ich habe es mal für heute (Mi) rausgepickt:
Gehen wir mal vom letzen aus, also Sonntag:
Wenn cur_day + 4 (30 + 4 = 34) größer ist als month_days (31) dann soll _so = 34 - 31, also 3 sein. Das würde passen, denn kommender Sonntag ist der 03.09.2017 und andernfalls soll er 4 Tage zum jetzigen Tag hinzurechnen (Im Bezug auf letzer Woche: Mi, 23 + 4 Tage = So, 27)
Ich hoffe man konnte mir bis hierhin folgen. Leider funktioniert das nicht so. Es kommt immer eine -1 als Ergebnis.
Ich habe mir in der GM-Hilfe date_inc_day angeschaut, dort ist beschrieben:
Wenn ich das jetzige Datum (30) um 1 erhöhen würde, so dass der 31. rauskommen sollte, bekomme ich ebenfalls nur -1 als Ergebnis. (Wahrscheinlich wegen dem date_get_day)
Wenn ich jetzt date_inc_day(date_current_datetime(), 1) schreibe, kommt als Ergebnis nur 42978.64. Damit kann ich mal so gar nichts anfangen.
ich wollte die Daten einer Woche berechnen.
Sprich das Datum von einer Woche von Mo bis So.
Da gibt es natürlich das Problem, dass wenn bspw. der 31. ist und man 2 dazuzählt eine 33 heauskommt, es aber dann eigentlich eine 2 sein sollte.
GML-Quellcode
- //Hiermit bekomme ich die Zahl des aktuellen Tages (Heute wäre es z.B. eine 30, weil heute der 30.08.2017 ist)
- cur_day = date_get_day(date_current_datetime());
- //Hiermit schaue ob welcher Wochentag ist für mein Switch-Statement (eher weniger wichtig für mein Problem!)
- cur_weekday = date_get_weekday(date_current_datetime());
- //Hiermit schaue ich, wieviele Tage der aktuelle Monat hat
- month_days = date_days_in_month(date_current_datetime());
So, im Switch-Statement habe ich die Berechnung reingeklatscht, ich habe es mal für heute (Mi) rausgepickt:
GML-Quellcode
- case 3:
- _mo = cur_day - 2;
- _di = cur_day - 1;
- if (cur_day + 0) > month_days { _mi = cur_day - month_days; } else { _mi = cur_day + 0; }
- if (cur_day + 1) > month_days { _do = cur_day - month_days; } else { _do = cur_day + 1; }
- if (cur_day + 2) > month_days { _fr = cur_day - month_days; } else { _fr = cur_day + 2; }
- if (cur_day + 3) > month_days { _sa = cur_day - month_days; } else { _sa = cur_day + 3; }
- if (cur_day + 4) > month_days { _so = cur_day - month_days; } else { _so = cur_day + 4; }
- break;
Gehen wir mal vom letzen aus, also Sonntag:
Wenn cur_day + 4 (30 + 4 = 34) größer ist als month_days (31) dann soll _so = 34 - 31, also 3 sein. Das würde passen, denn kommender Sonntag ist der 03.09.2017 und andernfalls soll er 4 Tage zum jetzigen Tag hinzurechnen (Im Bezug auf letzer Woche: Mi, 23 + 4 Tage = So, 27)
Ich hoffe man konnte mir bis hierhin folgen. Leider funktioniert das nicht so. Es kommt immer eine -1 als Ergebnis.
Ich habe mir in der GM-Hilfe date_inc_day angeschaut, dort ist beschrieben:
Wenn ich das jetzige Datum (30) um 1 erhöhen würde, so dass der 31. rauskommen sollte, bekomme ich ebenfalls nur -1 als Ergebnis. (Wahrscheinlich wegen dem date_get_day)
Wenn ich jetzt date_inc_day(date_current_datetime(), 1) schreibe, kommt als Ergebnis nur 42978.64. Damit kann ich mal so gar nichts anfangen.