Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(arr) {
- //get the date from input and format it to fit the ISO standart
- var formattedDateFromInput = arr[0].split('-').reverse().join('-');
- var startDate = new Date(formattedDateFromInput);
- var endDate = addDays(startDate, 1000);
- var totalLeapYears = leapYearCheck(startDate, endDate);
- if (totalLeapYears != 0) {
- endDate = addDays(endDate, 0 - totalLeapYears);
- }
- //we have to reformat date now
- endDate = endDate.toISOString().replace(/T.*/, '').split('-').reverse().join('-');
- console.log(endDate);
- function addDays(date, days) {
- var result = new Date(date);
- result.setDate(result.getDate() + parseInt(days));
- return result;
- }
- // checks if the period contain leap year ( 1997-2001 checks 1997,8,9, 2000,1 if they are leap years);
- function leapYearCheck(startYear, finishedYear) {
- var z = 0;
- var yStarrt = startYear ? startYear.getUTCFullYear() : startYear.getFullYear();
- var yEnd = finishedYear ? finishedYear.getUTCFullYear() : finishedYear.getFullYear();
- var mStart = startYear.getMonth();
- var mEnd = finishedYear.getMonth();
- var dStart = startYear.getDate();
- //check if start year is a leap year,if yes adds one if it is before 29-02
- if ((yStarrt % 4 == 0) && (yStarrt % 100 != 0) || (yStarrt % 400 == 0)) {
- if (mStart <= 1) {
- }
- {
- z += 1
- }
- }
- //check if end year is a leap year,if yes adds one if it is after 29-02
- if ((yEnd % 4 == 0) && (yEnd % 100 != 0) || (yEnd % 400 == 0)) {
- if (mEnd > 1) {
- }
- {
- z += 1
- }
- }
- for (var i = yStarrt + 1; i < yEnd; i++) {
- if ((i % 4 == 0) && (i % 100 != 0) || (i % 400 == 0)) {
- z += 1;
- }
- }
- return z;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement