Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gamtiq/weekstart
Library to get first day of week.
https://github.com/gamtiq/weekstart
country day first locale region start week
Last synced: about 8 hours ago
JSON representation
Library to get first day of week.
- Host: GitHub
- URL: https://github.com/gamtiq/weekstart
- Owner: gamtiq
- License: mit
- Created: 2017-09-07T20:19:15.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-02-24T13:07:57.000Z (over 1 year ago)
- Last Synced: 2024-04-26T20:03:45.024Z (7 months ago)
- Topics: country, day, first, locale, region, start, week
- Language: JavaScript
- Homepage: https://gamtiq.github.io/weekstart/
- Size: 854 KB
- Stars: 19
- Watchers: 4
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: History.md
- License: LICENSE
Awesome Lists containing this project
README
[![NPM version](https://badge.fury.io/js/weekstart.png)](http://badge.fury.io/js/weekstart)
Library to get first day of week.
```js
getWeekStartByRegion('MAC'); // 0getWeekStartByLocale('arq'); // 6
```The library is based on the following data from Unicode (especially from Common Locale Data Repository) and from ISO:
* [https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/territory_information.html](https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/territory_information.html)
* [https://github.com/unicode-org/cldr-json/blob/main/cldr-json/cldr-core/supplemental/weekData.json](https://github.com/unicode-org/cldr-json/blob/main/cldr-json/cldr-core/supplemental/weekData.json)
* [https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/territory_language_information.html](https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/territory_language_information.html)
* [https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/language_territory_information.html](https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/language_territory_information.html)
* [https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/scripts_languages_and_territories.html](https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/scripts_languages_and_territories.html)
* [http://www.unicode.org/reports/tr35/tr35.html#Unicode_Language_and_Locale_Identifiers](http://www.unicode.org/reports/tr35/tr35.html#Unicode_Language_and_Locale_Identifiers)
* [https://www.iso.org/iso-3166-country-codes.html](https://www.iso.org/iso-3166-country-codes.html)There are 2 variants of the library having identical [API](#api):
* `main` - uses base mapping of language code to country code from [langRegionMap](https://github.com/gamtiq/weekstart/blob/master/src/langRegionMap.js).
* `full` - uses full mapping of language code to country code from [fullLangRegionMap](https://github.com/gamtiq/weekstart/blob/master/src/fullLangRegionMap.js).[langRegionMap](https://github.com/gamtiq/weekstart/blob/master/src/langRegionMap.js) contains only main language codes.
It is data subset from [fullLangRegionMap](https://github.com/gamtiq/weekstart/blob/master/src/fullLangRegionMap.js).## Table of contents
* [Installation](#install)
* [Usage](#usage)
* [Examples](#examples)
* [API](#api)
* [Contributing](#contributing)
* [License](#license)### Node
npm install weekstart
### [Bower](http://bower.io)
bower install weekstart
### AMD/UMD, <script>
Use `dist/main.js` or `dist/min/main.js` (minified version).
Use `dist/full.js` or `dist/min/full.js` (minified version) when you need full locale data.### ECMAScript 6
```js
import {getWeekStartByLocale, getWeekStartByRegion} from 'weekstart';
```If you need full data:
```js
import {getWeekStartByLocale, getWeekStartByRegion} from 'weekstart/full';
```### Node
```js
const getWeekStartByLocale = require('weekstart').getWeekStartByLocale;
const getWeekStartByRegion = require('weekstart').getWeekStartByRegion;
```If you need full data:
```js
const getWeekStartByLocale = require('weekstart/full').getWeekStartByLocale;
const getWeekStartByRegion = require('weekstart/full').getWeekStartByRegion;
```### AMD/UMD
```js
define(['path/to/dist/main.js'], function(weekstart) {
const getWeekStartByLocale = weekstart.getWeekStartByLocale;
const getWeekStartByRegion = weekstart.getWeekStartByRegion;
});
```If you need full data:
```js
define(['path/to/dist/full.js'], function(weekstart) {
const getWeekStartByLocale = weekstart.getWeekStartByLocale;
const getWeekStartByRegion = weekstart.getWeekStartByRegion;
});
```### Bower, <script>
```html
// weekstart is available via weekstart field of window object
const getWeekStartByLocale = weekstart.getWeekStartByLocale;
const getWeekStartByRegion = weekstart.getWeekStartByRegion;```
If you need full data use `path/to/dist/full.js` instead of `path/to/dist/main.js`.
```js
getWeekStartByRegion('dj'); // 6
getWeekStartByRegion('No'); // 1
getWeekStartByRegion('CAN'); // 0
getWeekStartByRegion(462); // 5getWeekStartByLocale('Jam'); // 0
getWeekStartByLocale('Fa'); // 6
getWeekStartByLocale('vi'); // 1
getWeekStartByLocale('es_MX'); // 0
getWeekStartByLocale('az-Arab-IRN'); // 6
```In the following examples results are given for the function from `full.js`.
The same calls for the function from `main.js` will return `1`.```js
getWeekStartByLocale('CCP'); // 0
getWeekStartByLocale('UZ-arab'); // 6
```#### getWeekStartByLocale(locale): number
Return first day of week for locale identifier:
0 - Sunday, 1 - Monday, 2 - Tuesday, 3 - Wednesday, 4 - Thursday, 5 - Friday, 6 - Saturday.#### getWeekStartByRegion(regionCode): number
Return first day of week for country/region code:
0 - Sunday, 1 - Monday, 2 - Tuesday, 3 - Wednesday, 4 - Thursday, 5 - Friday, 6 - Saturday.See [`docs`](https://gamtiq.github.io/weekstart/) for details.
## Contributing [↑](#start)
In lieu of a formal styleguide, take care to maintain the existing coding style.
Add unit tests for any new or changed functionality.
Lint and test your code.## License [↑](#start)
Licensed under the [MIT license](https://github.com/gamtiq/weekstart/blob/master/LICENSE).