All Projects → peopledoc → Workalendar

peopledoc / Workalendar

Licence: mit
Worldwide holidays and workdays computational toolkit.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Workalendar

Punic
PHP translation and localization made easy!
Stars: ✭ 133 (-75.77%)
Mutual labels:  localization, calendar
Fluent Rs
Rust implementation of Project Fluent
Stars: ✭ 503 (-8.38%)
Mutual labels:  localization
Localizable.strings2excel
Python command line tool for conversion between iOS strings files and excel files & between android strings.xml files and excl files. & strings files to android strings.xml files.
Stars: ✭ 424 (-22.77%)
Mutual labels:  localization
Ava Docs
Localized docs for AVA
Stars: ✭ 455 (-17.12%)
Mutual labels:  localization
Chinese Calendar
📅 中国农历(阴历)与阳历(公历)转换与查询工具
Stars: ✭ 428 (-22.04%)
Mutual labels:  calendar
Crunchycalendar
A beautiful material calendar with endless scroll, range selection and a lot more!
Stars: ✭ 465 (-15.3%)
Mutual labels:  calendar
Agendav
A CalDAV web client similar to Google Calendar
Stars: ✭ 412 (-24.95%)
Mutual labels:  calendar
Intl Messageformat
[MIGRATED] Format a string with placeholders, including plural and select support to create localized messages.
Stars: ✭ 537 (-2.19%)
Mutual labels:  localization
Westwind.globalization
Database driven resource localization for .NET applications
Stars: ✭ 492 (-10.38%)
Mutual labels:  localization
Laravel Js Localization
🌐 Convert your Laravel messages and consume them in the front-end!
Stars: ✭ 451 (-17.85%)
Mutual labels:  localization
Chinese Calendar
判断一天是不是法定节假日/法定工作日(查看节假日安排)
Stars: ✭ 441 (-19.67%)
Mutual labels:  calendar
Calendarview
An Easy to Use Calendar for iOS (Swift 5.0)
Stars: ✭ 429 (-21.86%)
Mutual labels:  calendar
Libsurvive
Open Source Lighthouse Tracking System
Stars: ✭ 462 (-15.85%)
Mutual labels:  localization
Juliazh.jl
Julia语言中文文档
Stars: ✭ 425 (-22.59%)
Mutual labels:  localization
Angular Moment Picker
Angular Moment Picker is an AngularJS directive for date and time picker using Moment.js.
Stars: ✭ 536 (-2.37%)
Mutual labels:  calendar
Openpaas Esn
Open PaaS Enterprise Social Network
Stars: ✭ 414 (-24.59%)
Mutual labels:  calendar
Stringz
A lightweight and powerful editor for localizing iOS, macOS, tvOS, and watchOS applications.
Stars: ✭ 440 (-19.85%)
Mutual labels:  localization
Sppermissions
Ask permissions with ready-use interface. You can check status permission and if it has been requested before. Support SwiftUI.
Stars: ✭ 4,701 (+756.28%)
Mutual labels:  calendar
Calendar Links
Generate add to calendar links for Google, iCal and other calendar systems
Stars: ✭ 544 (-0.91%)
Mutual labels:  calendar
Ion2 Calendar
📅 A date picker components for ionic2 /ionic3 / ionic4
Stars: ✭ 537 (-2.19%)
Mutual labels:  calendar

Workalendar

Overview

Workalendar is a Python module that offers classes able to handle calendars, list legal / religious holidays and gives working-day-related computation functions.

Status

This library is ready for production, although we may warn eventual users: some calendars may not be up-to-date, and this library doesn't cover all the existing countries on earth (yet).

If you spot any bug or wish to add a calendar, please refer to the Contributing doc.

Usage sample

>>> from datetime import date
>>> from workalendar.europe import France
>>> cal = France()
>>> cal.holidays(2012)
[(datetime.date(2012, 1, 1), 'New year'),
 (datetime.date(2012, 4, 9), 'Easter Monday'),
 (datetime.date(2012, 5, 1), 'Labour Day'),
 (datetime.date(2012, 5, 8), 'Victory in Europe Day'),
 (datetime.date(2012, 5, 17), 'Ascension Day'),
 (datetime.date(2012, 5, 28), 'Whit Monday'),
 (datetime.date(2012, 7, 14), 'Bastille Day'),
 (datetime.date(2012, 8, 15), 'Assumption of Mary to Heaven'),
 (datetime.date(2012, 11, 1), "All Saints' Day"),
 (datetime.date(2012, 11, 11), 'Armistice Day'),
 (datetime.date(2012, 12, 25), 'Christmas')]
>>> cal.is_working_day(date(2012, 12, 25))  # it's Christmas
False
>>> cal.is_working_day(date(2012, 12, 30))  # it's Sunday
False
>>> cal.is_working_day(date(2012, 12, 26))
True
>>> cal.add_working_days(date(2012, 12, 23), 5)  # 5 working days after Xmas
datetime.date(2012, 12, 31)

For a more complete documentation and advanced usage, go to the official workalendar documentation.

External dependencies

Workalendar will require you to use Python 3.6+.

Workalendar is tested on Python 3.6, 3.7, 3.8, 3.9, and on Linux (Ubuntu), Mac OS and Windows using Github actions.

Conditional dependencies

As of v15.0.0:

  • If you're using *Nix and Python 3.6, 3.7, 3.8, the package backports.zoneinfo is required
  • If you're using Windows and Python 3.6, 3.7, 3.8, the package tzdata is also a requirement (with the backports.zoneinfo).
  • If you're using Python 3.9+, the stdlib zoneinfo package will be used.

Tests

CI status:

Github action status

To run test, just install tox with pip install tox and run:

tox

from the command line.

Available Calendars

Europe

  • Austria
  • Belarus
  • Belgium
  • Bulgaria
  • Cayman Islands
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • European Central Bank
  • Finland
  • France
  • France (Alsace / Moselle)
  • Germany
  • Greece
  • Hungary
  • Iceland
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Monaco
  • Netherlands (optionally with school holidays and carnival)
  • Norway
  • Poland
  • Portugal
  • Romania
  • Russia
  • Serbia
  • Slovakia
  • Slovenia
  • Spain (Andalusia, Aragon, Castile and León, Castilla-La Mancha, Canary Islands, Extremadura, Galicia, Balearic Islands, La Rioja, Community of Madrid, Murcia, Navarre, Asturias, Basque Country, Cantabria, Valencian Community)
  • Sweden
  • Switzerland (Aargau, Appenzell Innerrhoden, Appenzell Ausserrhoden, Bern, Basel-Landschaft, Basel-Stadt, Fribourg, Geneva, Glarus, Graubünden, Jura, Luzern, Neuchâtel, Nidwalden, Obwalden, St. Gallen, Schaffhausen, Solothurn, Schwyz, Thurgau, Ticino, Uri, Vaud, Valais, Zug, Zurich)
  • Turkey
  • Ukraine
  • United Kingdom (incl. Northern Ireland, Scotland and all its territories)

America

  • Argentina
  • Barbados
  • Brazil (all states, cities and for bank transactions, except the city of Viana)
  • Canada (including provincial and territory holidays)
  • Chile
  • Colombia
  • Mexico
  • Panama
  • Paraguay
  • United States of America
    • State holidays for all the 50 States
    • American Samoa
    • Chicago, Illinois
    • Guam
    • Suffolk County, Massachusetts
    • California Education, Berkeley, San Francisco, West Hollywood
    • Florida Legal and Florida Circuit Courts, Miami-Dade

Asia

  • China
  • Hong Kong
  • Israel
  • Japan
  • JapanBank
  • Malaysia
  • Qatar
  • Singapore
  • South Korea
  • Taiwan

Oceania

  • Australia (incl. its different states)
  • Marshall Islands
  • New Zealand

Africa

  • Algeria
  • Angola
  • Benin
  • Ivory Coast
  • Kenya
  • Madagascar
  • Mozambique
  • São Tomé
  • South Africa

And more to come (I hope!)

Caveats

Please take note that some calendars are not 100% accurate. The most common example is the Islamic calendar, where some computed holidays are not exactly on the same official day decided by religious authorities, and this may vary country by country. Whenever it's possible, try to adjust your results with the official data provided by the adequate authorities.

Contributing

Please read our contributing.md document to discover how you can contribute to workalendar. Pull-requests are very welcome.

License

This library is published under the terms of the MIT License. Please check the LICENSE file for more details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].