Autor |
Nachricht |
Ralf Ecke
Threadersteller
Dabei seit: 19.09.2021
Ort: Kamen
Alter: 68
Geschlecht:
|
Verfasst So 19.09.2021 12:46
Titel Mit Adobe Acrobat ein Datum plus 5 Monate berechnen |
|
|
Wie kann ich in Adobe Acrobat mit ein fiktives Datum plus 5 Monate berechnen.
z.B. Prüfdatum, Datum heute - Prüfintervall alle 5 Monate - neues Prüfdatum
Gruß
RE
|
|
|
|
|
Mialet
Dabei seit: 11.02.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst So 19.09.2021 20:31
Titel
|
|
|
Wie genau muss das denn sein?
Der Wert im Datumsfeld ist ein Tag. Diesem kannst du problemlos für ein anderes Feld 150 hinzuaddieren und das Ergebnis wieder als Datum ausgeben, dass ist dann aber nicht zwangsläufig wieder der selbe Tag in 5 Monaten.
Also aus dem 5. März 2021 wird dann der 2. August 2021
Code: | var zukuenftigesDatum = util.scand("dd.mm.yyyy", this.getField("Datum").value);
zukuenftigesDatum.setDate(zukuenftigesDatum.getDate()+150);
event.value=util.printd("dd.mm.yyyy",zukuenftigesDatum);[/quote] |
Es geht auch korrekter (wobei, frag mich nicht was aus dem 30. Oktober am Februarende wird …), dann musst du quasi das Datum in seine Einzelteile zerlegen, also Tag, Monat und Jahr extrahieren, dem Monat 5 aufaddieren, das Ergebnis kontrollieren und wenns größer 12 ist wieder 12 abziehen, dem Jahr dafür dann eins draufzählen und am Ende alles wieder in ein ausgebbares Datum zusammenbasteln.
Zuletzt bearbeitet von Mialet am So 19.09.2021 20:48, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
Mialet
Dabei seit: 11.02.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 20.09.2021 00:37
Titel
|
|
|
Ich habs mal mit Reduzierung auf plausible Daten umgesetzt:
Code: | var strTag = util.scand("dd.mm.yyyy",this.getField("Datum").value);
var endTag = util.printd("d", strTag) * 1;
var endMonat = util.printd("m", strTag) * 1;
var endJahr = util.printd("yyyy", strTag) * 1;
switch (endMonat)
{
case 1:
if (endTag = 31)
{
endTag = 30;
}
endMonat = endMonat + 5;
break;
case 2: case 3: case 4: case 5: case 6: case 7:
endMonat = endMonat + 5;
break;
case 8: case 10: case 12:
endMonat = endMonat - 7;
endJahr = endJahr + 1;
break;
case 9:
if (endTag > 28)
{
endTag = 28;
}
endMonat = endMonat - 7;
endJahr = endJahr + 1;
break;
case 11:
if (endTag = 31)
{
endTag = 30;
}
endMonat = endMonat - 7;
endJahr = endJahr + 1;
break;
}
event.value = endTag + "." + endMonat + "." + endJahr; |
bedeutet:
Monate mit einem 31. werden bei Monaten mit nur 30 Tagen auf den 30. zurückgestutzt:
31.1. ---> + 5 Monate ---> 30.6.
Im Oktober passiert das auch mit dem 29. und 30.
Den 29.2. als Zieltag hab ich mir für die Schaltjahre dann mal gespart.
Dieser Code gehört als Berechnungsscript in das Textfeld, das das Zieldatum anzeigen soll.
Wenn man das Startdatum-Feld noch auf Formatierung: Datum ( z.B. d.m.yyyy) setzt, können auch keine nicht vorhandenen Tage eingegeben werden.
Das Zielfeld würde ich schützen, damit keiner ein eigenes Intervall eingibt.
|
|
|
|
|
|
|
|
Ähnliche Themen |
Projekt für 3 Monate?
Monate charakterisieren
6 Monate U-Haft und das Resultat
Fahrtkosten und Beratungszeit berechnen?
Außen- / Innenradius berechnen
Fotografie für Plakat - Bildgröße berechnen
|
|