Aktuelles Datum minus 5 Tage


#1
Hallo zusammen.

Als erstes möchte ich sagen das ich ned viel Ahnung (eher noob :) ) davon habe.

Ggf. kann mir einer von euch weiterhelfen.

Ich möchte wie unten beschrieben das aktuelle Datum wiederspiegeln.
getdate() habe ich auch probiert aber da spuckt der das Datum inkl. Uhrzeit etc. aus.

Was ich benötige ist:

Aktuelle Datum minus 5 Tage.
Also heute ist der 24.06.2018 und der Output soll anzeigen: "Hier steht ein Datum: 19.06.2018".
Sehr gerne sogar die Darstellung im Format: 19. Juni 2018 :)

Wie unten beschrieben funktioniert es zwar aber verständlicherweise kann beim Tag
hier auch ein minuswert entstehen, wenn wir z.B. der 02.07.2018 das aktuelle Datum ist.

Habt Ihr ggf. ne idee?
Bitte wenn es geht kommpletten Code, da wie beschrieben mein wissen in Grenzen hält :p

Vielen Dank schonmal und ein schönes WE

-----------------------------------------------------------------------

string datum = "";
integer tag = 0;
integer monat = 0;
integer date = 0;
integer jahr = 0;
date mydate;

tag = mydate.getday() -5;
monat = mydate.getmonth();
jahr = mydate.getyear();

tag = mydate.getday();

agent.say("Hier steht ein Datum: " + integertostring(tag)+ "." + integertostring(monat) + "." + integertostring(jahr) + ".");
 
#3
haste ggf. den genauen code?
hatte ich auch mal probiert, aber irgend wie kam der dann immer mit meinen definitionen ned so wirklich klar :). tut mir leid bin da wirklich etwas vernoobt :D
 

ComFreek

Mod | @comfreek
Moderator
#5
Bei Datumsangelegenheiten wäre ich immer vorsichtig mit der erstbesten (ggf. naiven) Lösung ;) Da kann man leicht etwas mit Zeitzonen, Monats- oder Jahresgrenzen und auch Schaltjahren übersehen.

Am besten benutzt man eine Bibliothek wie z. B. Moment.js
Javascript:
moment().subtract(5, 'days').format('LL');
jsFiddle: https://jsfiddle.net/nm4c5zdb/5/


-> Lieber Moment Timezone nutzen, was echte Zeitzonen und nicht nur Offsets bietet.
 
Zuletzt bearbeitet:

Quaese

Moderator
Moderator
#7
Hi,

einfach mit Timestamps rechnen und das native Date-Objekt benutzen.
Javascript:
new Date(new Date().getTime() - (1000 * 24 * 60 * 60 * 5))
Ciao
Quaese
 

ComFreek

Mod | @comfreek
Moderator
#10
das problem was ich habe ich kann nur mit den bestehenden Bibliotheken arbeiten. Moment.js ist leider nicht enthalten :(
Warum darfst du keine weiteren Libs nutzen?
Aus meiner Sicht hast du nur 3 Möglichkeiten:
  • Eine Bibliothek nutzen
  • Das Rad neu erfinden, damit einhergehend: Stunden an Arbeit, mit ziemlicher Sicherheit einige Bugs, nötige Wartung, Tests und Dokumentation
  • Eine unzureichende falsche Lösung nutzen. Je nach Anwendungsfall kann das noch annähernd in Ordnung sein, aber bitte kommentiere das sowohl im Code als auch in der Doku/Wiki, dass es Fehler geben wird.
 

Sempervivum

Erfahrenes Mitglied
#11
Was soll denn an der Lösung von EuroCent falsch sein? Die Implementierung von Date() in Javascript halte ich für zuverlässig.
Javascript:
        var dat = new Date();
        dat.setDate(dat.getDate() - 5);
        console.log(dat.getDate());
 
Zuletzt bearbeitet:

ComFreek

Mod | @comfreek
Moderator
#12

ComFreek

Mod | @comfreek
Moderator
#14
Wie definierst du 5 Tage? Sind das 5*24*60 Sekunden? Wenn ja, hängt das von der Zeitzone ab. Nicht überall wurden Sekunden gleich gezählt in der Vergangenheit. Es gibt z. B. Löcher und Sprünge.