dutyhours
Version:
A tool to calculate total working hours in a given month, taking into account public holidays and configurable working days.
2 lines • 743 B
JavaScript
import l from"date-holidays";var w=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function b(t,e){let o=w[t];return e[`without${o}s`]?!1:e[`with${o}s`]?!0:t>=1&&t<=5}function c(t,e,o){let u=new l(o),n=new Date(t,e-1,1),a=new Date(t,e,0);return new Set(u.getHolidays(t).filter(({date:s,type:i})=>{let r=new Date(s);return r>=n&&r<=a&&i!=="observance"}).map(({date:s})=>new Date(s).toDateString()))}function D(t){let e=new Date,{country:o,hoursPerDay:u=8,month:n=e.getMonth()+1,year:a=e.getFullYear()}=t,s=c(a,n,o),i=new Date(a,n,0),r=0;for(let y=1;y<=i.getDate();y++){let d=new Date(a,n-1,y),h=d.getDay();!s.has(d.toDateString())&&b(h,t)&&(r+=u)}return r}var m=D;export{m as default};
//# sourceMappingURL=index.js.map