import React, { useState } from 'react'; const NepaliCalendar = () => { const [currentMonth, setCurrentMonth] = useState(0); // Nepali month names const nepaliMonths = [ 'बैशाख', 'जेठ', 'असार', 'श्रावण', 'भदौ', 'असोज', 'कार्तिक', 'मंसिर', 'पुष', 'माघ', 'फागुन', 'चैत्र' ]; // English equivalent months (approximate) const englishMonthEquivalents = [ '(Apr-May)', '(May-Jun)', '(Jun-Jul)', '(Jul-Aug)', '(Aug-Sep)', '(Sep-Oct)', '(Oct-Nov)', '(Nov-Dec)', '(Dec-Jan)', '(Jan-Feb)', '(Feb-Mar)', '(Mar-Apr)' ]; // Days of the week in Nepali const nepaliDaysOfWeek = [ 'आइतबार', 'सोमबार', 'मंगलबार', 'बुधबार', 'बिहिबार', 'शुक्रबार', 'शनिबार' ]; // Short form of days const shortDays = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']; // Tithis (lunar days) in Nepali const tithis = [ 'प्रतिपदा', 'द्वितीया', 'तृतीया', 'चतुर्थी', 'पञ्चमी', 'षष्ठी', 'सप्तमी', 'अष्टमी', 'नवमी', 'दशमी', 'एकादशी', 'द्वादशी', 'त्रयोदशी', 'चतुर्दशी', 'पूर्णिमा', 'औंसी' ]; // Calendar data for each month of 2082 BS // This is sample data for Baishakh (first month) // In a real app, you would have complete data for all months const calendarData = [ // Baishakh { days: 31, startDay: 0, // Sunday dates: [ { date: 1, tithi: 'प्रतिपदा' }, { date: 2, tithi: 'द्वितीया' }, { date: 3, tithi: 'तृतीया' }, { date: 4, tithi: 'चतुर्थी' }, { date: 5, tithi: 'पञ्चमी' }, { date: 6, tithi: 'षष्ठी' }, { date: 7, tithi: 'सप्तमी' }, { date: 8, tithi: 'अष्टमी' }, { date: 9, tithi: 'नवमी' }, { date: 10, tithi: 'दशमी' }, { date: 11, tithi: 'एकादशी' }, { date: 12, tithi: 'द्वादशी' }, { date: 13, tithi: 'त्रयोदशी' }, { date: 14, tithi: 'चतुर्दशी' }, { date: 15, tithi: 'पूर्णिमा' }, { date: 16, tithi: 'प्रतिपदा' }, { date: 17, tithi: 'द्वितीया' }, { date: 18, tithi: 'तृतीया' }, { date: 19, tithi: 'चतुर्थी' }, { date: 20, tithi: 'पञ्चमी' }, { date: 21, tithi: 'षष्ठी' }, { date: 22, tithi: 'सप्तमी' }, { date: 23, tithi: 'अष्टमी' }, { date: 24, tithi: 'नवमी' }, { date: 25, tithi: 'दशमी' }, { date: 26, tithi: 'एकादशी' }, { date: 27, tithi: 'द्वादशी' }, { date: 28, tithi: 'त्रयोदशी' }, { date: 29, tithi: 'चतुर्दशी' }, { date: 30, tithi: 'औंसी' }, { date: 31, tithi: 'प्रतिपदा' }, ], specialDates: [ { date: 23, note: 'अक्षय तृतीया' } ] }, // Add data for other months here // Jestha, Ashar, etc. ]; // For demo purposes, duplicate the first month data for all months const allMonthsData = Array(12).fill(calendarData[0]); const generateCalendarGrid = () => { const monthData = allMonthsData[currentMonth]; const totalDays = monthData.days; const startDay = monthData.startDay; // Create calendar grid with empty cells for days before the 1st const calendarGrid = []; let dayCount = 1; for (let week = 0; week < 6; week++) { const weekRow = []; for (let day = 0; day < 7; day++) { if ((week === 0 && day < startDay) || dayCount > totalDays) { // Empty cell weekRow.push(null); } else { // Find the date data const dateData = monthData.dates.find(d => d.date === dayCount) || { date: dayCount, tithi: '' }; // Check if it's a special date const isSpecial = monthData.specialDates && monthData.specialDates.some(sd => sd.date === dayCount); const specialNote = isSpecial ? monthData.specialDates.find(sd => sd.date === dayCount).note : ''; weekRow.push({ date: dayCount, tithi: dateData.tithi, isSpecial, specialNote }); dayCount++; } } calendarGrid.push(weekRow); // Break if we've used all days if (dayCount > totalDays) break; } return calendarGrid; }; const handlePrevMonth = () => { setCurrentMonth(prev => (prev === 0 ? 11 : prev - 1)); }; const handleNextMonth = () => { setCurrentMonth(prev => (prev === 11 ? 0 : prev + 1)); }; const handleMonthChange = (e) => { setCurrentMonth(parseInt(e.target.value)); }; return (