Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 3x 54x 54x 54x 54x 54x 3x | const { movableGurpurabs } = require( './consts' )
/**
* Returns Gregorian Date of Movable Gurpurab from 2003CE - 2100CE
* @param {string} gurpurab
* Movable Gurpurabs:<br>
* `gurunanak` - Parkash Guru Nanak Dev Ji<br>
* `bandichhorr` - Bandi Chhorr Divas / Diwali<br>
* `holla` - Holla Mahalla<br>
* `kabeer` - Birthday Bhagat Kabeer Ji<br>
* `ravidaas` - Birthday Bhagat Ravidaas Ji<br>
* `naamdev` - Birthday Bhagat Naamdev Ji
* @param {!number} [year] Gregorian year, default is current year. Range [2003...2100]
* @return {Object} Gurpurab Date with Name in English and Punjabi
* @example findMovableGurpurab( 'gurunanak' )
*/
function findMovableGurpurab( gurpurab, year = new Date().getFullYear() ) {
// Check if gurpurab in array
Iif ( !( gurpurab in movableGurpurabs ) ) {
throw Error( `String "${gurpurab}" not found in list of movable Gurpurabs.` )
}
Iif ( year < 2003 || year > 2100 ) {
throw new RangeError( 'Year not in range [2003...2100].' )
}
// Get data for event
const { name, dates } = movableGurpurabs[ gurpurab ]
const { month, day } = dates[ year - 2003 ]
return {
gregorianDate: new Date( year, month - 1, day ),
name: {
en: `${name.en} (${year})`,
pa: `${name.pa} (${year})`,
type: name.type,
movable: true,
},
}
}
module.exports = findMovableGurpurab
|