{"id":19726391,"url":"https://github.com/danhunsaker/calends","last_synced_at":"2025-10-01T06:30:49.223Z","repository":{"id":50200284,"uuid":"120889797","full_name":"danhunsaker/calends","owner":"danhunsaker","description":"A library for handling dates and times across arbitrary calendar systems","archived":false,"fork":false,"pushed_at":"2023-07-25T21:05:08.000Z","size":483,"stargazers_count":8,"open_issues_count":4,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-15T02:35:07.627Z","etag":null,"topics":["calendar-systems","gregorian","instant","julian","julian-day","span","stardate","tai64","unix-timestamp"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danhunsaker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-09T10:07:08.000Z","updated_at":"2024-01-12T18:05:58.000Z","dependencies_parsed_at":"2024-06-19T06:13:15.911Z","dependency_job_id":"978e2c7a-c47a-4366-bc51-d05a379f83ad","html_url":"https://github.com/danhunsaker/calends","commit_stats":{"total_commits":333,"total_committers":4,"mean_commits":83.25,"dds":0.036036036036036,"last_synced_commit":"bf65d35871103979356e86d67e06364c6549be3a"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danhunsaker%2Fcalends","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danhunsaker%2Fcalends/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danhunsaker%2Fcalends/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danhunsaker%2Fcalends/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danhunsaker","download_url":"https://codeload.github.com/danhunsaker/calends/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234833322,"owners_count":18893888,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calendar-systems","gregorian","instant","julian","julian-day","span","stardate","tai64","unix-timestamp"],"created_at":"2024-11-11T23:35:28.135Z","updated_at":"2025-10-01T06:30:48.820Z","avatar_url":"https://github.com/danhunsaker.png","language":"Go","readme":"# Calends\n\n[![Software License](https://img.shields.io/github/license/danhunsaker/calends.svg?style=for-the-badge)](LICENSE)\n[![Main Docs](https://img.shields.io/readthedocs/calends.svg?label=main+docs\u0026style=for-the-badge)](https://calends.readthedocs.io/)\n[![GoDoc Reference](https://img.shields.io/badge/GoDoc-reference-brightgreen.svg?style=flat-square)](https://godoc.org/github.com/danhunsaker/calends)\n[![Gitter Chat](https://img.shields.io/gitter/room/danhunsaker/calends.svg?style=flat-square)](https://gitter.im/danhunsaker/calends)\n[![Total Downloads](https://img.shields.io/github/downloads/danhunsaker/calends/total.svg?style=flat-square)](https://github.com/danhunsaker/calends/releases)\n\n[![Latest Stable Version](https://img.shields.io/github/release/danhunsaker/calends.svg?style=for-the-badge)](https://github.com/danhunsaker/calends/releases)\n[![GitHub Release Date](https://img.shields.io/github/release-date/danhunsaker/calends.svg?style=for-the-badge)](https://github.com/danhunsaker/calends)\n[![Github commits (since latest release)](https://img.shields.io/github/commits-since/danhunsaker/calends/latest.svg?style=flat-square)](https://github.com/danhunsaker/calends)\n[![GitHub last commit](https://img.shields.io/github/last-commit/danhunsaker/calends.svg?style=flat-square)](https://github.com/danhunsaker/calends)\n\n[![Maintenance Status](https://img.shields.io/maintenance/yes/2023.svg?style=flat-square)](https://github.com/danhunsaker/calends)\n[![GitHub branch checks state](https://img.shields.io/github/checks-status/danhunsaker/calends/main?style=flat-square)](https://github.com/danhunsaker/calends/actions)\n[![Codecov coverage](https://img.shields.io/codecov/c/github/danhunsaker/calends.svg?style=flat-square)](https://codecov.io/gh/danhunsaker/calends)\n[![Go Report Card](https://goreportcard.com/badge/github.com/danhunsaker/calends?style=flat-square)](https://goreportcard.com/report/github.com/danhunsaker/calends)\n[![Libraries.io Dependency Check](https://img.shields.io/librariesio/github/danhunsaker/calends.svg?style=flat-square)](https://libraries.io/github/danhunsaker/calends)\n\n[![Code Climate coverage](https://img.shields.io/codeclimate/coverage-letter/danhunsaker/calends.svg?style=flat-square)](https://codeclimate.com/github/danhunsaker/calends)\n[![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/danhunsaker/calends.svg?style=flat-square)](https://codeclimate.com/github/danhunsaker/calends)\n[![Code Climate technical debt](https://img.shields.io/codeclimate/tech-debt/danhunsaker/calends.svg?style=flat-square)](https://codeclimate.com/github/danhunsaker/calends)\n[![Code Climate issues](https://img.shields.io/codeclimate/issues/danhunsaker/calends.svg?style=flat-square)](https://codeclimate.com/github/danhunsaker/calends)\n\n[![Crowdin](https://d322cqt584bo4o.cloudfront.net/calends/localized.svg)](https://crowdin.com/project/calends)\n[![Liberapay receiving](https://img.shields.io/liberapay/receives/danhunsaker.svg?style=flat-square)](https://liberapay.com/danhunsaker/)\n\nA library for handling dates and times across arbitrary calendar systems\n\n## Features\n\nMore information about each of these features is available in [the full\ndocumentation][full].\n\n- [x] Large range and high precision\n- [x] Supports date (and time) values in multiple calendar systems:\n  - [x] **Unix time**\n  - [x] **[TAI64][]**\n    - [x] Automatic calculation of leap second offsets\n    - [ ] Estimation of undefined past and future leap second insertions\n    - [ ] Automatic updates for handling leap second insertions\n  - [x] **Gregorian**\n    - [ ] Disconnect from native `time.Time` implementation, and its limitations\n  - [ ] **Julian**\n  - [x] **Julian Day Count**\n  - [ ] **Hebrew**\n  - [ ] **Persian**\n  - [ ] **Chinese**\n  - [ ] **Meso-American**\n  - [ ] **Discordian**\n  - [x] **Stardate**\n- [x] Encodes both time spans and instants in a single interface\n- [x] Supports calculations and comparisons on spans and instants\n- [ ] Conversion to/from native date/time types\n- [ ] Geo-temporally aware\n- [ ] Time zone support\n- [x] Well-defined interfaces for extending the library\n- [x] Shared library (`.so`/`.dll`/`.dylib`)\n- [X] WebAssembly binary\n\n## Installation\n\nThe steps here will vary based on which programming language(s) you're using.\n\nFor Golang, simply run `go get github.com/danhunsaker/calends`, and then place\n`\"github.com/danhunsaker/calends\"` in the `import` wherever you intend use it.\n\nFor other languages, refer to [the full documentation][full].\n\n## Usage\n\nUsage data has been moved to [the full documentation][full].\n\n## Calendar Systems\n\nCurrently supported calendar systems, and the options available for each, are\nlisted in [the full documentation][full]. Also provided there are the docs for\nhow to add your own.\n\n## Contributing\n\nPull requests are always welcome! That said, please be open to discussing the PR\ncontent, and possibly revising it if requested. Not all requests can be merged,\nand not all changes are desired.\n\nOr, you can contribute some money, instead! Check out [my\nPatreon](https://www.patreon.com/DanHunsaker) for options, there. Other options\nwill likely be added for one-time donations in the future.\n\n## Security Reporting\n\nReport all security-related issues to [dan (dot) hunsaker (plus) calends (at)\ngmail](mailto:dan.hunsaker+calends@gmail.com), and use PGP or GPG protections on\nyour message (the account's key is `44806AB9`, or you can look it up by the\nemail address). Security issues will be addressed internally before making any\nvulnerability announcements.\n\n[GitHub]:https://github.com/danhunsaker/calends\n[TAI64]:http://cr.yp.to/libtai/tai64.html\n[full]:https://calends.readthedocs.io/\n","funding_links":["https://liberapay.com/danhunsaker/","https://www.patreon.com/DanHunsaker"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanhunsaker%2Fcalends","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanhunsaker%2Fcalends","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanhunsaker%2Fcalends/lists"}