Skip to content

πŸ•’ A flexible tool for calculating the total number of working hours in a given month, considering public holidays and customizable working days.

License

Notifications You must be signed in to change notification settings

kamdz/dutyhours

Repository files navigation

πŸ•’ DutyHours

A flexible tool for calculating the total number of working hours in a given month, considering public holidays and customizable working days. This library allows you to specify which days of the week should be considered as working days and accounts for holidays.

πŸš€ Features

  • Customizable working days – Choose which days of the week should be considered working days.
  • Flexible working hours – Set the number of working hours per day.
  • Holiday handling – Include public holidays from your country.
  • Configurable month and year – Specify the month and year for which you want to calculate working hours.

πŸ› οΈ Installation

npm install dutyhours

πŸ“– Usage

JavaScript/TypeScript

import calculateWorkingHours from 'dutyhours';

// Basic usage
const workingHours = calculateWorkingHours({ country: 'PL' });
console.log(`Total working hours: ${workingHours}`);

// More custom usage
const customWorkingHours = calculateWorkingHours({
  country: 'PL',
  hoursPerDay: 6,
  withSaturdays: true,
  withoutThursdays: true,
  month: 5, // May
  year: 2024
});
console.log(`Total working hours: ${customWorkingHours}`);

Command Line Interface (CLI)

You can also use it via the command line:

# Calculate working hours for PL in the current month
npx dutyhours PL

# More custom calculations...
npx dutyhours PL --month 5 --year 2024
npx dutyhours PL --withSaturdays --hours 6
npx dutyhours PL --withoutFridays

πŸ”§ API

calculateWorkingHours(options: Options): number

Calculates the total number of working hours in the given month, considering public holidays and configurable working days.

  • options (object):
    • country (string): The country code to determine the public holidays. In ISO 3166-1 alpha-2 format. For example, 'US' for United States, 'PL' for Poland, etc.
    • hoursPerDay (number, optional): The number of working hours per day. Defaults to 8.
    • withMondays, withTuesdays, withWednesdays, withThursdays, withFridays, withSaturdays, withSundays (boolean, optional): Whether to include these days as working days. Defaults to true for weekdays, false for weekends.
    • withoutMondays, withoutTuesdays, withoutWednesdays, withoutThursdays, withoutFridays, withoutSaturdays, withoutSundays (boolean, optional): Whether to exclude these days from working days.
    • month (number, optional): The month to calculate working hours for (1 to 12). Defaults to the current month.
    • year (number, optional): The year to calculate working hours for. Defaults to the current year.

About

πŸ•’ A flexible tool for calculating the total number of working hours in a given month, considering public holidays and customizable working days.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published