Advertisement
Sim0o0na

Untitled

Jan 16th, 2017
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. function solve(arr) {
  2. //get the date from input and format it to fit the ISO standart
  3. var formattedDateFromInput = arr[0].split('-').reverse().join('-');
  4. var startDate = new Date(formattedDateFromInput);
  5. var endDate = addDays(startDate, 1000);
  6. var totalLeapYears = leapYearCheck(startDate, endDate);
  7.  
  8. if (totalLeapYears != 0) {
  9. endDate = addDays(endDate, 0 - totalLeapYears);
  10. }
  11. //we have to reformat date now
  12. endDate = endDate.toISOString().replace(/T.*/, '').split('-').reverse().join('-');
  13. console.log(endDate);
  14.  
  15. function addDays(date, days) {
  16. var result = new Date(date);
  17. result.setDate(result.getDate() + parseInt(days));
  18. return result;
  19. }
  20.  
  21. // checks if the period contain leap year ( 1997-2001 checks 1997,8,9, 2000,1 if they are leap years);
  22. function leapYearCheck(startYear, finishedYear) {
  23. var z = 0;
  24. var yStarrt = startYear ? startYear.getUTCFullYear() : startYear.getFullYear();
  25. var yEnd = finishedYear ? finishedYear.getUTCFullYear() : finishedYear.getFullYear();
  26. var mStart = startYear.getMonth();
  27. var mEnd = finishedYear.getMonth();
  28. var dStart = startYear.getDate();
  29.  
  30. //check if start year is a leap year,if yes adds one if it is before 29-02
  31. if ((yStarrt % 4 == 0) && (yStarrt % 100 != 0) || (yStarrt % 400 == 0)) {
  32. if (mStart <= 1) {
  33. }
  34. {
  35. z += 1
  36. }
  37. }
  38. //check if end year is a leap year,if yes adds one if it is after 29-02
  39. if ((yEnd % 4 == 0) && (yEnd % 100 != 0) || (yEnd % 400 == 0)) {
  40. if (mEnd > 1) {
  41. }
  42. {
  43. z += 1
  44. }
  45. }
  46.  
  47. for (var i = yStarrt + 1; i < yEnd; i++) {
  48. if ((i % 4 == 0) && (i % 100 != 0) || (i % 400 == 0)) {
  49. z += 1;
  50. }
  51. }
  52.  
  53. return z;
  54. }
  55.  
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement