﻿var DateUtils = new Object();
DateUtils.dateToString = function (date) { var day = date.getDate(); if (day < 10) { day = '0' + day; } var month = date.getMonth() + 1; if (month < 10) { month = '0' + month; } var year = date.getFullYear(); var fullDate = day + '.' + month + '.' + year; return fullDate; };
DateUtils.stringToDate = function (date) { var s = date; var pattern1 = /\d\d[\.\-\/]\d\d[\.\-\/]\d\d\d\d/; var m = pattern1.test(s); if (!m) { return null; } var a = s.split(/[\.\-\/]/); var pattern2 = /[1-2]\d\d\d/; var string = a[2]; var t = pattern2.test(string); if (a[0] > 31 || a[0] < 1) { return false; } if (a[1] > 12 || a[1] < 1) { return false; } if (!t) { return false; } var dateNew = new Date(a[2], a[1] - 1, a[0]); return dateNew; };
DateUtils.parseDate = function (poleId, now) { var divElementPole = document.getElementById(poleId); var dateString = divElementPole.value; if (dateString == "") { return null; } var parsedDate = DateUtils.stringToDate(dateString); return parsedDate; };
DateUtils.compareDates = function (date1, date2) { var dayDate1 = date1.getDate(); var dayDate2 = date2.getDate(); var monthDate1 = date1.getMonth(); var monthDate2 = date2.getMonth(); var yearDate1 = date1.getYear(); var yearDate2 = date2.getYear(); if (yearDate1 > yearDate2) { return 1; } else { if (yearDate1 < yearDate2) { return -1; } else { if (monthDate1 > monthDate2) { return 1; } else { if (monthDate1 < monthDate2) { return -1; } else { if (dayDate1 > dayDate2) { return 1; } else { if (dayDate1 < dayDate2) { return -1; } else { return 0; } } } } } } };
DateUtils.getDaysFromMonth = function (currentMonth, currentYear) { var date = new Date(); date.setDate(1); date.setMonth(currentMonth); date.setYear(currentYear); var aktivMonth = date.getMonth(); var counter = 0; do { date.setDate(date.getDate() + 1); var currentMonth = date.getMonth(); counter += 1; } while (currentMonth == aktivMonth); return (counter); };
DateUtils.datePlus = function (date, number) { var date = new Date(date.getTime()); date.setDate(date.getDate() + number); return date; };
DateUtils.isLeapYear = function (y) { return ((y % 4) == 0) && (((y % 100) != 0) || ((y % 400) == 0)); };
DateUtils.daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
DateUtils.getDaysOfYear = function (d, m, y) { var daysOfYear = d; for (var i = 1; i < m; i++) { daysOfYear += this.daysInMonth[i - 1]; } if (m == 2 && d == 29 && this.isLeapYear(y)) { daysOfYear = 60; } return daysOfYear; };
DateUtils.yearsDiff = function (a, b) { var A = a.split("."); var aDay = A[0] * 1; var aMonth = A[1] * 1; var aYear = A[2] * 1; var aDayOfYear = this.getDaysOfYear(aDay, aMonth, aYear); var B = b.split("."); var bDay = B[0] * 1; var bMonth = B[1] * 1; var bYear = B[2] * 1; var bDayOfYear = this.getDaysOfYear(bDay, bMonth, bYear); var deltaYear = aYear - bYear; if (aDayOfYear < bDayOfYear) { deltaYear--; } return deltaYear; };
