country-weekends
v1.2.3
Published
Check if a date is a weekend based on country
Maintainers
Readme
Country Weekends 🌍📅
A lightweight TypeScript library providing weekend days for every country, including regional variations.
Features
- ✅ 195+ countries with verified weekend patterns
- 🌐 Regional variations (states/provinces)
- 🕒 Timezone-aware weekend detection
- 📦 Zero dependencies
- 🧠 TypeScript & JavaScript support
Installation
npm install country-weekends
# or
yarn add country-weekendsUsage
Basic Usage
import { getWeekendDays, isWeekend } from 'country-weekends';
// Get weekend days for a country
getWeekendDays('AE'); // → [5, 6] (Friday/Saturday in UAE)
// Check if a date is weekend
isWeekend(new Date(), 'US'); // → true/falseAdvanced Usage
// Handle regional variations
getWeekendDays('IN-TN'); // → [0] (Sunday in Tamil Nadu, India)
// Get all supported country codes
import { countryWeekends } from 'country-weekends';
Object.keys(countryWeekends); // → ['US', 'AE', ...]Data Coverage
| Region | Countries | Special Cases | |--------------|-----------|------------------------| | Middle East | 18 | Islamic weekends | | Europe | 44 | - | | Americas | 35 | Puerto Rico | | Asia-Pacific | 48 | Indian states | | Africa | 54 | 8 unique patterns |
API Reference
getWeekendDays(countryCode: string): number[]
Returns an array of weekend day numbers (0=Sunday, 6=Saturday)
isWeekend(date: Date, countryCode: string): boolean
Determines if a date falls on a weekend for the specified country
countryWeekends: Record<string, number[]>
Complete dataset of all country weekend patterns
Contributing
Found missing data or incorrect weekends?
- Check open issues
- Submit a PR with verified sources
- Include official government/central bank references
Support & Contact
License
ISC © Aziz Alzayed
Real-World Examples
Business Day Calculation
function addBusinessDays(date: Date, days: number, countryCode: string): Date {
// Implementation using isWeekend()
}React Hook Example
function useWeekendStatus(countryCode: string) {
const [isWeekend, setIsWeekend] = useState(false);
// Hook implementation
}