{ "info": { "author": "Igor Iakovlev", "author_email": "igorxut@example.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6" ], "description": "# Working Calendar\n\n[![License](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/igorxut/working-calendar/blob/master/LICENSE)\n[![PyPi version](https://img.shields.io/pypi/v/working-calendar.svg)](https://test.pypi.org/project/working-calendar/)\n[![PyPI pyversions](https://img.shields.io/pypi/pyversions/working-calendar.svg)](https://pypi.python.org/pypi/working-calendar/)\n\n## Description\n\nClass `WorkingCalendar` is utility for operate with working days.\n\n## Current version\n\n0.0.1 (2018-07-13)\n\n## Installation\n\n```bash\npip install working_calendar\n```\n\n## Example\n\n```python\nfrom datetime import date\nfrom working_calendar import WorkingCalendar\n\n\nif __name__ == '__main__':\n wc = WorkingCalendar()\n\n holidays = [\n date(2018, 2, 23),\n date(2018, 3, 8),\n date(2018, 3, 9),\n ]\n additional_working_days = [\n date(2018, 3, 10),\n ]\n not_standard_working_day = (date(2018, 3, 10), 240) # 240 min = 4 hours\n\n wc.extend_holidays(holidays)\n wc.extend_working_days(additional_working_days)\n wc.update_not_standard_working_day(not_standard_working_day[0], not_standard_working_day[1])\n\n print(wc.count_working_days_between(date(2018, 3, 1), date(2018, 3, 12))) # 7 working days\n print(wc.count_working_days_in_year(2018)) # 259 working days\n print(wc.count_working_days_in_month(2018, 2)) # 19 working days\n\n print(wc.count_working_minutes_between(date(2018, 3, 1), date(2018, 3, 12))) # 3120 minutes\n print(wc.count_working_minutes_in_year(2018)) # 124080 minutes\n print(wc.count_working_minutes_in_month(2018, 2)) # 9120 minutes\n\n print(wc.count_working_hours_between(date(2018, 3, 1), date(2018, 3, 12))) # 52.0 hours\n print(wc.count_working_hours_in_year(2018)) # 2068.0 hours\n print(wc.count_working_hours_in_month(2018, 2)) # 152.0 hours\n\n print(wc.get_next_working_day(date(2018, 3, 7))) # 2018-03-10\n print(wc.skip_working_days(date(2018, 3, 10), 10)) # 2018-03-23\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/igorxut/working-calendar", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "working-calendar", "package_url": "https://pypi.org/project/working-calendar/", "platform": "", "project_url": "https://pypi.org/project/working-calendar/", "project_urls": { "Homepage": "https://github.com/igorxut/working-calendar" }, "release_url": "https://pypi.org/project/working-calendar/0.0.1/", "requires_dist": [ "typing" ], "requires_python": "", "summary": "Utility for operate with working days.", "version": "0.0.1" }, "last_serial": 4058420, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "a240fff31f5efc543804e9ca36e318cd", "sha256": "48999ea66ef12b9f9af0746425ff8bb54b0c542c776d7f6f0569dd810785e6b6" }, "downloads": -1, "filename": "working_calendar-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a240fff31f5efc543804e9ca36e318cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6135, "upload_time": "2018-07-13T15:47:27", "url": "https://files.pythonhosted.org/packages/75/7a/be41a95b8f28aab6f8052f7912f049f22e6176ec0e41845c15445d213524/working_calendar-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee0991a075a0655f4464a89f22d64a47", "sha256": "95c144d1e4c22bd41543613643423ecfca6460ebaa98b99a3ce3a2a2cf633893" }, "downloads": -1, "filename": "working_calendar-0.0.1.tar.gz", "has_sig": false, "md5_digest": "ee0991a075a0655f4464a89f22d64a47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5434, "upload_time": "2018-07-13T15:47:28", "url": "https://files.pythonhosted.org/packages/8c/e5/b8eccb0d61acdae075419c6dd04233cd57b0c0f8e5482fb2e8d3da4598d5/working_calendar-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a240fff31f5efc543804e9ca36e318cd", "sha256": "48999ea66ef12b9f9af0746425ff8bb54b0c542c776d7f6f0569dd810785e6b6" }, "downloads": -1, "filename": "working_calendar-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a240fff31f5efc543804e9ca36e318cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6135, "upload_time": "2018-07-13T15:47:27", "url": "https://files.pythonhosted.org/packages/75/7a/be41a95b8f28aab6f8052f7912f049f22e6176ec0e41845c15445d213524/working_calendar-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee0991a075a0655f4464a89f22d64a47", "sha256": "95c144d1e4c22bd41543613643423ecfca6460ebaa98b99a3ce3a2a2cf633893" }, "downloads": -1, "filename": "working_calendar-0.0.1.tar.gz", "has_sig": false, "md5_digest": "ee0991a075a0655f4464a89f22d64a47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5434, "upload_time": "2018-07-13T15:47:28", "url": "https://files.pythonhosted.org/packages/8c/e5/b8eccb0d61acdae075419c6dd04233cd57b0c0f8e5482fb2e8d3da4598d5/working_calendar-0.0.1.tar.gz" } ] }