Ich habe mir einige andere Fragen angesehen und mein spezifisches Problem nicht gesehen, also entschuldigen Sie bitte, falls es gefragt oder beantwortet wurde.
Was ich versuche zu tun, ist ein einfacher "Zahlungs"-Rechner zu erstellen und zusätzliche Informationen anzugeben, wie das Datum der ersten und letzten Zahlung.
In einigen Fällen funktioniert der Tag der letzten Zahlung und manchmal nicht.
Hier ist mein Code:
var myDate = new Date();
var odo = document.contract.firstPaymentDate.value;
var n = odo.split("/");
var month = n[0];
var day = n[1];
var year = n[2];
var oldDateObj = new Date(year, month, day);
var newDateObj = new Date(oldDateObj.getTime() + ((document.contract.totalNumberRegularPayments.value - 1)*1209600*1000));
var dd = newDateObj.getDate();
var mm = newDateObj.getMonth();
var y = newDateObj.getFullYear();
var someFormattedDate = mm + '/'+ dd + '/'+ y;
document.contract.lastPaymentDate.value = someFormattedDate;
Also nehme ich das Datum der ersten Zahlung und füge 1209600 Sekunden mal die Anzahl der Zahlungen hinzu (minus 1, da sie die erste Zahlung "bereits" geleistet haben).
Dies basiert auf dem Start an einem bestimmten Tag, der vom Benutzer gewählt werden kann.
Also mein Beispiel sind 156 BiWeekly-Zahlungen (also 155 für die Berechnungen), was 6 Jahre ergibt. Wenn ich den 1. wähle, erhalte ich den Start am 01.10.2013, aber das Ende am 11.09.2019 (Erster an einem Dienstag, letzter an einem Mittwoch).
Für den 15. (15.09.2013 - ein Sonntag - bis 24.08.2019 - ein Samstag) Für den 20. (20.09.2013 - ein Freitag - bis 29.08.2013 - ein Donnerstag)
Also, da es manchmal einen Tag später ist und manchmal einen Tag früher, kann ich nicht einfach +1 zu var dd = newDateObj.getDate();
hinzufügen.
Ich bin wirklich ratlos, was hier passiert, und ich hoffe, dass jemand da draußen entweder Erfahrung damit hat oder jemand, der weiß, was zum Teufel ich falsch mache.
Vielen Dank im Voraus für jegliche Hilfe, die Sie anbieten können.