UNPKG

preveri-datum

Version:

67 lines (66 loc) 1.71 kB
export const prviDelovniDan = (datum) => { var free = [ "-01-01", "-01-02", "-02-08", "-04-27", "-05-01", "-05-02", "-06-25", "-11-01", "-12-26", Easter(datum.getFullYear()), ]; var d = new Date(); for (var i = 0; i < free.length; i++) { free[i] = d.getFullYear() + free[i]; } d = new Date(datum); if ( free.indexOf(datum) == 0 || free.indexOf(datum) == 1 || free.indexOf(datum) == 4 || free.indexOf(datum) == 5 ) { d.setDate(d.getDate() + 2); } else if ( free.indexOf(datum) == 2 || free.indexOf(datum) == 3 || free.indexOf(datum) == 6 || free.indexOf(datum) == 7 || free.indexOf(datum) == 8 || free.indexOf(datum) == 9 ) { d.setDate(d.getDate() + 1); } if (d.getDay() == 0) { d.setDate(d.getDate() + 1); } else if (d.getDay() == 6) { d.setDate(d.getDate() + 2); } console.log(d); return d; }; function Easter(Y) { var C = Math.floor(Y / 100); var N = Y - 19 * Math.floor(Y / 19); var K = Math.floor((C - 17) / 25); var I = C - Math.floor(C / 4) - Math.floor((C - K) / 3) + 19 * N + 15; I = I - 30 * Math.floor(I / 30); I = I - Math.floor(I / 28) * (1 - Math.floor(I / 28) * Math.floor(29 / (I + 1)) * Math.floor((21 - N) / 11)); var J = Y + Math.floor(Y / 4) + I + 2 - C + Math.floor(C / 4); J = J - 7 * Math.floor(J / 7); var L = I - J; var M = 3 + Math.floor((L + 40) / 44); var D = L + 28 - 31 * Math.floor(M / 4); return "-" + padout(M) + "-" + padout(D + 1); } function padout(number) { return number < 10 ? "0" + number : number; }