india-holiday-1.0
Version:
A simple utility to check Indian holidays by date. Get festive greetings based on the current or given date.
72 lines (66 loc) • 3.22 kB
JavaScript
const holidays = [
{ date: '01-01', name: "New Year's Day" },
{ date: '01-02', name: 'Last day of Hanukkah' },
{ date: '01-06', name: 'Guru Govind Singh Jayanti' },
{ date: '01-13', name: 'Lohri' },
{ date: '01-14', name: 'Pongal' },
{ date: '01-14', name: 'Makar Sankranti' },
{ date: '01-14', name: "Hazarat Ali's Birthday" },
{ date: '01-26', name: 'Republic Day' },
{ date: '01-29', name: 'Lunar New Year' },
{ date: '02-02', name: 'Vasant Panchami' },
{ date: '02-12', name: 'Guru Ravidas Jayanti' },
{ date: '02-14', name: "Valentine's Day" },
{ date: '02-19', name: 'Shivaji Jayanti' },
{ date: '02-23', name: 'Maharishi Dayanand Saraswati Jayanti' },
{ date: '02-26', name: 'Maha Shivaratri/Shivaratri' },
{ date: '03-02', name: 'Ramadan Start (Tentative Date)' },
{ date: '03-13', name: 'Holika Dahana' },
{ date: '03-14', name: 'Holi' },
{ date: '03-14', name: 'Dolyatra' },
{ date: '03-20', name: 'March Equinox' },
{ date: '03-28', name: 'Jamat Ul-Vida (Tentative Date)' },
{ date: '03-30', name: 'Chaitra Sukhladi' },
{ date: '03-30', name: 'Ugadi' },
{ date: '03-30', name: 'Gudi Padwa' },
{ date: '03-31', name: 'Ramzan Id/Eid-ul-Fitar (Tentative Date)' },
{ date: '04-10', name: 'Mahavir Janma Kalyanak' },
{ date: '04-14', name: 'Ambedkar Jayanti' },
{ date: '04-15', name: 'Pohela Boishakh and West Bengal Day' },
{ date: '05-01', name: 'Labour Day' },
{ date: '05-08', name: 'Rabindra Jayanti' },
{ date: '05-12', name: 'Pandit Raghunath Murmu Jayanti and Vesak' },
{ date: '06-06', name: 'Eid al-Adha' },
{ date: '06-07', name: 'Eid al-Adha' },
{ date: '08-15', name: 'Independence Day' },
{ date: '09-04', name: 'Mawlid' },
{ date: '09-30', name: 'Durga Ashtami' },
{ date: '10-01', name: 'Maha Navami' },
{ date: '10-02', name: 'Gandhi Jayanti' },
{ date: '10-06', name: 'Lakshmi Puja' },
{ date: '10-20', name: 'Diwali' },
{ date: '11-05', name: 'Guru Nanak Gurpurab' },
{ date: '12-25', name: 'Christmas Day' },
{ date: '12-31', name: 'Last Day of the Year' }
];
const getHolidayMessage = (inputDate, useGradient = false) => {
const dateObj = new Date(inputDate);
if (isNaN(dateObj.getTime())) {
return "Error in date: use 'new Date();'";
}
const formattedDate = dateObj.toISOString().slice(5, 10);
const holiday = holidays.find(h => h.date === formattedDate);
const gradientText = (text) => {
const colors = ['\x1b[38;2;255;153;51m', '\x1b[38;2;0;0;255m', '\x1b[38;2;255;255;255m', '\x1b[38;2;19;136;8m'];
let gradientApplied = '';
const textLength = text.length;
text.split('').forEach((char, index) => {
const colorIndex = Math.floor((index / textLength) * colors.length);
gradientApplied += colors[colorIndex] + char;
});
return gradientApplied + '\x1b[0m';
};
let message = holiday ? `Happy ${holiday.name},` : "Welcome,";
return useGradient ? gradientText(message) : message;
};
module.exports = getHolidayMessage;