Crate workdays

Source
Expand description

§Workdays

workdays is a Rust library for computing work days and handling work calendars. It provides functionality to define custom work weeks, add holidays, and compute dates based on a given number of work days.

§Features

  • Compute end dates based on work days
  • Calculate the number of work days between two dates
  • Parse and handle work calendar configurations (YAML or JSON)
  • Support for custom work days and holidays
  • Flexible weekday parsing

§Usage

Here’s a quick example:

use workdays::WorkCalendar;
use chrono::NaiveDate;

let mut calendar = WorkCalendar::new();
calendar.add_holiday(NaiveDate::from_ymd_opt(2023, 12, 25).unwrap());
calendar.set_work_days("Mon,Tue,Wed,Thu,Fri").unwrap();

let start_date = NaiveDate::from_ymd_opt(2023, 8, 21).unwrap();
let days_worked = 20;

let (end_date, calendar_duration) = calendar.compute_end_date(start_date, days_worked).unwrap();
println!("End date: {}", end_date);
println!("Calendar duration: {} days", calendar_duration.num_days());

Structs§

WorkCalendar
Represents a work calendar with customizable work days and holidays.

Functions§

parse_weekday
Parses a weekday string into a Weekday enum.