ஜாவாஸ்கிரிப்ட்டின் டெம்போரல் API மூலம் கேலெண்டர் மாற்றங்களை ஆழமாக அறிதல். இஸ்லாமிய, ஹீப்ரு, பௌத்த மற்றும் பிற கேலெண்டர் அமைப்புகளில் தேதிகளைத் துல்லியமாக மாற்றுவதைக் கற்றுக்கொள்ளுங்கள்.
ஜாவாஸ்கிரிப்ட் டெம்போரல் கேலெண்டர் மாற்றம்: பல-கேலெண்டர் தேதி மாற்றத்தில் நிபுணத்துவம்
உலகம் கிரிகோரியன் கேலெண்டரை மட்டும் சார்ந்து இயங்குவதில்லை. உலகளவில் விரிவடையும் வணிகங்கள், பல்வேறு கலாச்சார மற்றும் மத அனுசரிப்புகளைக் கணக்கில் எடுத்துக்கொள்ள வேண்டும், ஒவ்வொன்றும் குறிப்பிட்ட கேலெண்டர் அமைப்புகளுடன் தொடர்புடையவை. ஜாவாஸ்கிரிப்ட்டின் நவீன டெம்போரல் ஏபிஐ (Temporal API) இந்தச் சிக்கல்களைக் கையாள சக்திவாய்ந்த கருவிகளை வழங்குகிறது. இது டெவலப்பர்களை கேலெண்டர்களுக்கு இடையில் தேதிகளை எளிதாக மாற்றவும், துல்லியமான திட்டமிடல், கணக்கீடுகள் மற்றும் தரவு வழங்கலை உறுதி செய்யவும் அனுமதிக்கிறது. இந்த விரிவான வழிகாட்டி, டெம்போரல் ஏபிஐ-யின் கேலெண்டர் மாற்றும் திறன்களை ஆராய்ந்து, உலகளாவிய விழிப்புணர்வுடன் கூடிய பயன்பாடுகளை உருவாக்குவதற்கான நடைமுறை எடுத்துக்காட்டுகள் மற்றும் சிறந்த நடைமுறைகளை வழங்குகிறது.
பல-கேலெண்டர் தேதி மாற்றத்தின் தேவையைப் புரிந்துகொள்ளுதல்
பாரம்பரிய ஜாவாஸ்கிரிப்ட் `Date` ஆப்ஜெக்ட்கள் கிரிகோரியன் அல்லாத கேலெண்டர்களைக் கையாள்வதில் வரம்புகளைக் கொண்டுள்ளன. டெம்போரல் ஏபிஐ பல்வேறு கேலெண்டர் அமைப்புகளுடன் வேலை செய்ய ஒரு தரப்படுத்தப்பட்ட மற்றும் வலுவான வழியை வழங்குவதன் மூலம் இந்தச் சிக்கலைத் தீர்க்கிறது. இந்தச் சூழ்நிலைகளைக் கவனியுங்கள்:
- சர்வதேச சந்திப்புகளைத் திட்டமிடுதல்: கிரிகோரியன் முறையில் திட்டமிடப்பட்ட ஒரு நிகழ்விற்கு இஸ்லாமிய (ஹிஜ்ரி) அல்லது ஹீப்ரு கேலெண்டரில் சமமான தேதியைத் துல்லியமாகக் கண்டறிவது மத விடுமுறைகள் மற்றும் கலாச்சார உணர்வுகளை மதிக்க மிகவும் முக்கியமானது.
- பல்வேறு பிராந்தியங்களில் கடன் வட்டியைக் கணக்கிடுதல்: சில நிதி நிறுவனங்கள் வட்டி கணக்கீடுகளுக்கு குறிப்பிட்ட கேலெண்டர்களைப் பயன்படுத்துகின்றன. டெம்போரல் இந்த அமைப்புகளில் துல்லியமான தேதி கணக்கீடுகளை அனுமதிக்கிறது.
- பயனர் விரும்பும் வடிவங்களில் தேதிகளைக் காண்பித்தல்: பயனரின் இருப்பிடம் மற்றும் கேலெண்டர் விருப்பத்திற்கு ஏற்ப தேதி காட்சிகளைத் தனிப்பயனாக்குவது பயனர் அனுபவத்தை மேம்படுத்துகிறது, குறிப்பாக பல்வேறு மக்களை இலக்காகக் கொண்ட பயன்பாடுகளுக்கு இது பொருந்தும்.
- வரலாற்றுத் தரவு பகுப்பாய்வு: வரலாற்றுத் தரவுத்தொகுப்புகளுடன் பணிபுரியும்போது, பழைய அல்லது குறைவாகப் பயன்படுத்தப்படும் கேலெண்டர்களில் பதிவுசெய்யப்பட்ட தேதிகளைப் புரிந்துகொண்டு மாற்றுவது துல்லியமான விளக்கத்திற்கு அவசியமாகிறது.
டெம்போரல் ஏபிஐ மற்றும் கேலெண்டர்கள் அறிமுகம்
நவீன ஜாவாஸ்கிரிப்ட் சூழல்களில் இப்போது பரவலாக ஆதரிக்கப்படும் டெம்போரல் ஏபிஐ, தேதிகள், நேரங்கள் மற்றும் நேர மண்டலங்களுடன் பணிபுரிய மிகவும் உள்ளுணர்வு மற்றும் சக்திவாய்ந்த வழியை வழங்குகிறது. இதன் மையத்தில், `Temporal.Calendar` ஆப்ஜெக்ட் ஒரு குறிப்பிட்ட கேலெண்டர் அமைப்பைக் குறிக்கிறது. Temporal.PlainDate, Temporal.PlainDateTime, மற்றும் பிற டெம்போரல் வகைகள் ஒரு `Temporal.Calendar` நிகழ்வுடன் தொடர்புபடுத்தப்படலாம்.
டெம்போரல் ஏபிஐ தற்போது பின்வரும் கேலெண்டர்களை ஆதரிக்கிறது (இந்தக் கட்டுரையை எழுதும்போது):
- `iso8601` (கிரிகோரியன் - இயல்புநிலை)
- `gregory` (`iso8601` இன் மாற்றுப்பெயர்)
- `islamic`
- `islamic-umalqura`
- `islamic-tbla`
- `islamic-rgsa`
- `islamic-civil`
- `hebrew`
- `buddhist`
- `roc` (சீனக் குடியரசு)
- `japanese`
- `persian`
எதிர்கால பதிப்புகள் மேலும் பல கேலெண்டர்களை அறிமுகப்படுத்தலாம் அல்லது தனிப்பயன் கேலெண்டர் செயலாக்கங்களை அனுமதிக்கலாம்.
Temporal.PlainDate உடன் அடிப்படை கேலெண்டர் மாற்றம்
`Temporal.PlainDate` ஆப்ஜெக்ட் நேர மண்டலம் இல்லாத ஒரு தேதியைக் குறிக்கிறது. நீங்கள் ஒரு குறிப்பிட்ட கேலெண்டருடன் தொடர்புடைய `Temporal.PlainDate`-ஐ உருவாக்கலாம்:
const gregorianDate = Temporal.PlainDate.from('2024-01-20');
const islamicCalendar = Temporal.Calendar.from('islamic');
const islamicDate = Temporal.PlainDate.from({ year: 1445, month: 6, day: 8, calendar: islamicCalendar });
console.log(gregorianDate.toString()); // வெளியீடு: 2024-01-20
console.log(islamicDate.toString()); // வெளியீடு: 1445-06-08[u-ca=islamic]
`toString()` முறை, கேலெண்டர் குறிப்புடன் `[u-ca=islamic]` தேதியை வெளியிடும். இது அந்த தேதி இஸ்லாமிய கேலெண்டருடன் தொடர்புடையது என்பதைக் குறிக்கிறது.
கேலெண்டர்களுக்கு இடையில் மாற்றுதல்
கேலெண்டர்களுக்கு இடையில் மாற்றுவதற்கான முக்கிய வழி, ஒவ்வொரு கேலெண்டருடனும் தொடர்புடைய `Temporal.PlainDate` ஆப்ஜெக்ட்களை உருவாக்கி, பின்னர் அந்தந்த தேதி கூறுகளைப் பிரித்தெடுப்பதாகும். ஒரு கிரிகோரியன் தேதியை இஸ்லாமிய கேலெண்டரில் அதற்கு சமமானதாக மாற்றுவது எப்படி என்பது இங்கே:
const gregorianDate = Temporal.PlainDate.from('2024-01-20');
const islamicCalendar = Temporal.Calendar.from('islamic');
// இஸ்லாமிய கேலெண்டரில் தேதி கூறுகளைப் பிரித்தெடுத்தல்
const islamicYear = gregorianDate.toPlainDate(islamicCalendar).year;
const islamicMonth = gregorianDate.toPlainDate(islamicCalendar).month;
const islamicDay = gregorianDate.toPlainDate(islamicCalendar).day;
console.log(`Gregorian: ${gregorianDate.toString()}`);
console.log(`Islamic: ${islamicYear}-${islamicMonth}-${islamicDay}`); // வெளியீடு: Islamic: 1445-6-8
இந்த உதாரணத்தை விரிவாகப் பார்ப்போம்:
- நாம் `gregorianDate` உடன் தொடங்குகிறோம், இது ஒரு `Temporal.PlainDate` ஆப்ஜெக்டாகக் குறிப்பிடப்படுகிறது.
- `Temporal.Calendar.from('islamic')` பயன்படுத்தி ஒரு `islamicCalendar` ஆப்ஜெக்டை உருவாக்குகிறோம்.
- முக்கிய மாற்றம் `gregorianDate.toPlainDate(islamicCalendar)` மூலம் நிகழ்கிறது. இது அதே நேரப் புள்ளியைக் குறிக்கும் ஒரு புதிய `Temporal.PlainDate` ஆப்ஜெக்டை உருவாக்குகிறது, ஆனால் இப்போது அது இஸ்லாமிய கேலெண்டருடன் தொடர்புடையது.
- மாற்றப்பட்ட `Temporal.PlainDate` ஆப்ஜெக்ட்டிலிருந்து `year`, `month`, மற்றும் `day` கூறுகளை நாம் பிரித்தெடுக்கிறோம்.
டெம்போரல் ஏபிஐ ஆதரிக்கும் எந்த இரண்டு கேலெண்டர்களுக்கும் இடையில் மாற்ற இந்த முறையை நீங்கள் பயன்படுத்தலாம்.
மேம்பட்ட கேலெண்டர் கையாளுதல்: இஸ்லாமிய கேலெண்டர்கள்
இஸ்லாமிய கேலெண்டரில் பல வகைகள் உள்ளன. டெம்போரல் ஏபிஐ இவற்றை ஆதரிக்கிறது:
- `islamic`: ஒரு பொதுவான இஸ்லாமிய கேலெண்டர் (செயல்படுத்தல் மாறுபடலாம்).
- `islamic-umalqura`: சவுதி அரேபியாவின் உம் அல்-குரா கேலெண்டரை அடிப்படையாகக் கொண்டது.
- `islamic-tbla`: அட்டவணை கணக்கீட்டை அடிப்படையாகக் கொண்டது.
- `islamic-rgsa`: அவ்காஃபின் மத பொதுச் செயலகத்தை (எகிப்து) அடிப்படையாகக் கொண்டது.
- `islamic-civil`: இஸ்லாமிய கேலெண்டரின் முற்றிலும் எண்கணித பதிப்பு, முக்கியமாகக் கணக்கீடுகளுக்குப் பயன்படுத்தப்படுகிறது.
இஸ்லாமிய கேலெண்டருடன் பணிபுரியும்போது, உங்கள் பயன்பாட்டுக்கு எந்த வகை பொருத்தமானது என்பதைப் புரிந்துகொள்வது முக்கியம். எடுத்துக்காட்டாக, சவுதி அரேபியாவில் மத அனுசரிப்புகளுக்கு, நீங்கள் `islamic-umalqura`-ஐப் பயன்படுத்த விரும்புவீர்கள். நிதி கணக்கீடுகளுக்கு, அதன் கணிக்கக்கூடிய தன்மை காரணமாக `islamic-civil` மிகவும் பொருத்தமானதாக இருக்கலாம்.
const gregorianDate = Temporal.PlainDate.from('2024-03-11');
const islamicUmalquraCalendar = Temporal.Calendar.from('islamic-umalqura');
const islamicCivilCalendar = Temporal.Calendar.from('islamic-civil');
const islamicUmalquraDate = gregorianDate.toPlainDate(islamicUmalquraCalendar);
const islamicCivilDate = gregorianDate.toPlainDate(islamicCivilCalendar);
console.log(`Gregorian: ${gregorianDate.toString()}`);
console.log(`Islamic (Umm al-Qura): ${islamicUmalquraDate.year}-${islamicUmalquraDate.month}-${islamicUmalquraDate.day}`);
console.log(`Islamic (Civil): ${islamicCivilDate.year}-${islamicCivilDate.month}-${islamicCivilDate.day}`);
இஸ்லாமிய கேலெண்டர்களுக்கான முக்கியக் குறிப்புகள்:
- இஸ்லாமிய கேலெண்டரில் ஒரு புதிய மாதத்தின் தொடக்கம், புதிய பிறையைப் பார்ப்பதை அடிப்படையாகக் கொண்டது. `islamic-umalqura` கேலெண்டர் சவுதி அரேபியாவில் உண்மையான பிறை பார்வைகளுடன் ஒத்துப்போக முயல்கிறது, ஆனால் முரண்பாடுகள் ஏற்படலாம்.
- `islamic-civil` கேலெண்டர் ஒரு கணிதரீதியான தோராயமாகும், இது உண்மையான பிறை பார்வைகளைப் பிரதிபலிக்காது.
- இஸ்லாமிய விடுமுறை நாட்களின் துல்லியமான தேதிகளுக்கு எப்போதும் தொடர்புடைய மத அதிகாரிகளையோ அல்லது நம்பகமான ஆதாரங்களையோ அணுகவும்.
ஹீப்ரு கேலெண்டருடன் வேலை செய்தல்
ஹீப்ரு கேலெண்டர் என்பது யூத மத அனுசரிப்புகளுக்கும், இஸ்ரேலில் ஒரு அதிகாரப்பூர்வ கேலெண்டராகவும் பயன்படுத்தப்படும் ஒரு சந்திர-சூரிய கேலெண்டர் ஆகும். இது பருவ காலங்களுடன் ஒத்துப்போக லீப் மாதங்களைக் கொண்டுள்ளது.
const gregorianDate = Temporal.PlainDate.from('2024-03-11');
const hebrewCalendar = Temporal.Calendar.from('hebrew');
const hebrewDate = gregorianDate.toPlainDate(hebrewCalendar);
console.log(`Gregorian: ${gregorianDate.toString()}`);
console.log(`Hebrew: ${hebrewDate.year}-${hebrewDate.month}-${hebrewDate.day}`);
ஹீப்ரு கேலெண்டர் மற்றும் டெம்போரலின் முக்கிய அம்சங்கள்:
- லீப் மாதங்கள் டெம்போரல் ஏபிஐ மூலம் தானாகவே கையாளப்படுகின்றன. லீப் ஆண்டுகளைத் தீர்மானிக்க அல்லது கூடுதல் மாதங்களைச் சேர்க்க நீங்கள் தனிப்பயன் தர்க்கத்தைச் செயல்படுத்தத் தேவையில்லை.
- ஆண்டு எண் பாரம்பரிய யூத சகாப்தத்திலிருந்து (உலகின் உருவாக்கம்) தொடங்குகிறது.
- ஹீப்ரு கேலெண்டர் மாதப் பெயர்கள் கிரிகோரியன் கேலெண்டரிலிருந்து வேறுபட்டவை. இந்த மாதப் பெயர்களை நீங்கள் சர்வதேசமயமாக்கல் (i18n) நூலகங்கள் அல்லது தனிப்பயன் மேப்பிங்குகள் மூலம் அணுகலாம்.
பௌத்த, ROC, ஜப்பானிய மற்றும் பெர்சிய கேலெண்டர்களைக் கையாளுதல்
டெம்போரல் ஏபிஐ மற்ற கேலெண்டர்களையும் ஆதரிக்கிறது, ஒவ்வொன்றும் அவற்றின் சொந்த தனித்தன்மைகளைக் கொண்டுள்ளன. இங்கே சில குறிப்புகள்:
- பௌத்த கேலெண்டர்: பௌத்த கேலெண்டர் பல தென்கிழக்கு ஆசிய நாடுகளில் பயன்படுத்தப்படும் ஒரு சந்திர-சூரிய கேலெண்டர் ஆகும். ஆண்டு எண் பொதுவாக புத்தரின் இறப்பிலிருந்து தொடங்குகிறது.
- ROC கேலெண்டர் (சீனக் குடியரசு): இந்த கேலெண்டர் தைவானில் பயன்படுத்தப்படுகிறது மற்றும் 1912 இல் சீனக் குடியரசு நிறுவப்பட்டதிலிருந்து ஆண்டுகளைக் கணக்கிடுகிறது.
- ஜப்பானிய கேலெண்டர்: ஜப்பானிய கேலெண்டர் கிரிகோரியன் கேலெண்டரை அடிப்படையாகக் கொண்டது, ஆனால் ஆண்டுகளைக் குறிக்க ஜப்பானிய சகாப்தப் பெயர்களை (nengō) பயன்படுத்துகிறது.
- பெர்சிய கேலெண்டர்: பெர்சிய கேலெண்டர் ஒரு சூரிய கேலெண்டர் ஆகும், இது முக்கியமாக ஈரான் மற்றும் ஆப்கானிஸ்தானில் பயன்படுத்தப்படுகிறது.
const gregorianDate = Temporal.PlainDate.from('2024-03-11');
const buddhistCalendar = Temporal.Calendar.from('buddhist');
const rocCalendar = Temporal.Calendar.from('roc');
const japaneseCalendar = Temporal.Calendar.from('japanese');
const persianCalendar = Temporal.Calendar.from('persian');
const buddhistDate = gregorianDate.toPlainDate(buddhistCalendar);
const rocDate = gregorianDate.toPlainDate(rocCalendar);
const japaneseDate = gregorianDate.toPlainDate(japaneseCalendar);
const persianDate = gregorianDate.toPlainDate(persianCalendar);
console.log(`Gregorian: ${gregorianDate.toString()}`);
console.log(`Buddhist: ${buddhistDate.year}-${buddhistDate.month}-${buddhistDate.day}`);
console.log(`ROC: ${rocDate.year}-${rocDate.month}-${rocDate.day}`);
console.log(`Japanese: ${japaneseDate.year}-${japaneseDate.month}-${japaneseDate.day}`);
console.log(`Persian: ${persianDate.year}-${persianDate.month}-${persianDate.day}`);
இந்த கேலெண்டர்களைப் பயன்படுத்தும்போது, அவற்றின் குறிப்பிட்ட சகாப்தம் (தொடக்க ஆண்டு) மற்றும் தேதி பிரதிநிதித்துவத்துடன் தொடர்புடைய கலாச்சார நுணுக்கங்கள் குறித்து எச்சரிக்கையாக இருங்கள்.
Temporal.Now மற்றும் கேலெண்டர் பரிசீலனைகள்
`Temporal.Now` தற்போதைய தேதி மற்றும் நேரத்தைப் பெறப் பயன்படுத்தப்படலாம் என்றாலும், அது இயல்பாக ISO 8601 கேலெண்டரில் தற்போதைய தேதி மற்றும் நேரத்தைத் தருகிறது என்பதைப் புரிந்துகொள்வது அவசியம். உங்களுக்கு வேறு கேலெண்டரில் தற்போதைய தேதி தேவைப்பட்டால், நீங்கள் அதை மாற்ற வேண்டும்:
const islamicCalendar = Temporal.Calendar.from('islamic');
const now = Temporal.Now.plainDateISO(); // ISO 8601 கேலெண்டரில் தற்போதைய தேதி
const islamicNow = now.toPlainDate(islamicCalendar);
console.log(`Current Gregorian Date: ${now.toString()}`);
console.log(`Current Islamic Date: ${islamicNow.year}-${islamicNow.month}-${islamicNow.day}`);
தேதி வடிவமைப்பு மற்றும் சர்வதேசமயமாக்கல் (i18n)
தேதிகளை மாற்றுவது சமன்பாட்டின் ஒரு பகுதி மட்டுமே. அவற்றை காட்சிக்கு சரியாக வடிவமைக்க வேண்டும். ஜாவாஸ்கிரிப்ட்டின் `Intl.DateTimeFormat` ஏபிஐ சக்திவாய்ந்த சர்வதேசமயமாக்கல் திறன்களை வழங்குகிறது. டெம்போரல் ஏபிஐ உடன் இணைந்து, தொடர்புடைய கேலெண்டரைக் கணக்கில் எடுத்துக்கொண்டு, இருப்பிட-விழிப்புணர்வுடன் தேதிகளை வடிவமைக்க இதைப் பயன்படுத்தலாம்.
const gregorianDate = Temporal.PlainDate.from('2024-01-20');
const islamicCalendar = Temporal.Calendar.from('islamic');
const islamicDate = gregorianDate.toPlainDate(islamicCalendar);
const formatter = new Intl.DateTimeFormat('ar-SA-u-ca-islamic', { // அரபு (சவுதி அரேபியா) இஸ்லாமிய கேலெண்டருடன்
year: 'numeric',
month: 'long',
day: 'numeric',
});
console.log(formatter.format(islamicDate)); // எடுத்துக்காட்டு வெளியீடு: ٢٠ رجب، ١٤٤٥ هـ
இந்தக் குறியீட்டைப் பகுப்பாய்வு செய்வோம்:
- `'ar-SA-u-ca-islamic'` என்பது இருப்பிடச் சரம். `ar-SA` அரபு (சவுதி அரேபியா) மொழியைக் குறிப்பிடுகிறது, மற்றும் `u-ca-islamic` வெளிப்படையாக இஸ்லாமிய கேலெண்டரைக் கோருகிறது.
- `Intl.DateTimeFormat` விருப்பங்கள் தேதி எவ்வாறு வடிவமைக்கப்படுகிறது (ஆண்டு, மாதம், நாள்) என்பதைக் கட்டுப்படுத்துகின்றன.
- `format()` முறை ஒரு `Temporal.PlainDate` ஆப்ஜெக்டை (இந்த விஷயத்தில், `islamicDate`) எடுத்து, குறிப்பிட்ட இருப்பிடம் மற்றும் கேலெண்டரின்படி வடிவமைக்கப்பட்ட ஒரு சரத்தைத் தருகிறது.
உங்கள் குறிப்பிட்ட தேவைகளுக்கு ஏற்ப இருப்பிடச் சரம் மற்றும் வடிவமைப்பு விருப்பங்களை நீங்கள் மாற்றியமைக்கலாம். எடுத்துக்காட்டாக, ஹீப்ருவில் தேதியை வடிவமைக்க:
const gregorianDate = Temporal.PlainDate.from('2024-03-11');
const hebrewCalendar = Temporal.Calendar.from('hebrew');
const hebrewDate = gregorianDate.toPlainDate(hebrewCalendar);
const formatter = new Intl.DateTimeFormat('he-IL-u-ca-hebrew', { // ஹீப்ரு (இஸ்ரேல்) ஹீப்ரு கேலெண்டருடன்
year: 'numeric',
month: 'long',
day: 'numeric',
});
console.log(formatter.format(hebrewDate));
திறமையான தேதி வடிவமைப்புக்கான குறிப்புகள்:
- பயனரின் விருப்பமான மொழி மற்றும் பிராந்தியத்தைத் துல்லியமாகப் பிரதிபலிக்கும் இருப்பிடச் சரங்களைப் பயன்படுத்தவும்.
- சூழலுக்குப் பொருத்தமான வடிவமைப்பு விருப்பங்களைத் தேர்வுசெய்யவும் (எ.கா., சுருக்கமான காட்சிகளுக்கு குறுகிய தேதி வடிவங்கள், விரிவான விளக்கக்காட்சிகளுக்கு நீண்ட தேதி வடிவங்கள்).
- துல்லியம் மற்றும் வாசிப்புத் திறனை உறுதிப்படுத்த உங்கள் வடிவமைப்பை வெவ்வேறு இருப்பிடங்களில் சோதிக்கவும்.
கேலெண்டர்களுக்கு இடையில் தேதி கணக்கீடுகளைச் செய்தல்
டெம்போரல் ஏபிஐ தேதி கணக்கீடுகளில் சிறந்து விளங்குகிறது. கிரிகோரியன் அல்லாத கேலெண்டர்களுடன் பணிபுரியும்போதும், ஒரு `Temporal.PlainDate` ஆப்ஜெக்டிலிருந்து நாட்கள், மாதங்கள் அல்லது ஆண்டுகளைக் கூட்டலாம் அல்லது கழிக்கலாம்.
const gregorianDate = Temporal.PlainDate.from('2024-01-20');
const islamicCalendar = Temporal.Calendar.from('islamic');
const islamicDate = gregorianDate.toPlainDate(islamicCalendar);
// இஸ்லாமிய தேதிக்கு 30 நாட்கள் சேர்க்கவும்
const futureIslamicDate = islamicDate.add({ days: 30 });
console.log(`Original Islamic Date: ${islamicDate.year}-${islamicDate.month}-${islamicDate.day}`);
console.log(`Islamic Date + 30 days: ${futureIslamicDate.year}-${futureIslamicDate.month}-${futureIslamicDate.day}`);
// எதிர்கால இஸ்லாமிய தேதியை மீண்டும் கிரிகோரியனுக்கு மாற்றவும்
const futureGregorianDate = futureIslamicDate.toPlainDate('iso8601');
console.log(`Equivalent Gregorian Date: ${futureGregorianDate.toString()}`);
தேதி கணக்கீட்டிற்கான முக்கியப் பரிசீலனைகள்:
- `add()` மற்றும் `subtract()` முறைகள் புதிய `Temporal.PlainDate` ஆப்ஜெக்ட்களைத் தருகின்றன; அவை அசல் ஆப்ஜெக்டை மாற்றுவதில்லை.
- மாதங்கள் அல்லது ஆண்டுகளைக் கூட்டும்போதோ அல்லது கழிக்கும்போதோ, டெம்போரல் ஏபிஐ லீப் ஆண்டுகள் மற்றும் மாத நீளங்களுக்கான கேலெண்டர்-குறிப்பிட்ட விதிகளைக் கையாளுகிறது.
- கணக்கீடுகளைச் செய்யும்போது சாத்தியமான தேதி வழிதல் அல்லது குறைதல் குறித்து கவனமாக இருங்கள். டெம்போரல் ஏபிஐ பொதுவாக கேலெண்டருக்குள் அருகிலுள்ள சரியான தேதிக்கு தேதியைச் சரிசெய்யும்.
தெளிவற்ற தேதிகளைக் கையாளுதல்
சில சமயங்களில், கேலெண்டர்களுக்கு இடையில் மாற்றும்போது ஒரு தேதி தெளிவற்றதாக இருக்கலாம். இலக்கு கேலெண்டரில் ஒரு குறிப்பிட்ட தேதி இல்லாதபோது அல்லது மூல தேதிக்கு இலக்கு கேலெண்டரில் பல தேதிகள் பொருந்தக்கூடியபோது இது நிகழலாம். டெம்போரல் இந்தச் சூழ்நிலைகளை நேர்த்தியாகக் கையாளுகிறது, பொதுவாக அருகிலுள்ள சரியான தேதியைத் தருகிறது.
எடுத்துக்காட்டாக, ஒரு கிரிகோரியன் மாதத்தின் இறுதிக்கு அருகிலுள்ள ஒரு கிரிகோரியன் தேதியை இஸ்லாமிய கேலெண்டருக்கு மாற்றுவதைக் கவனியுங்கள், அங்கு தொடர்புடைய இஸ்லாமிய மாதம் குறுகியதாக இருக்கலாம். டெம்போரல் தானாகவே இதன் விளைவாக வரும் இஸ்லாமிய தேதியை அந்த மாதத்தின் கடைசி நாளுக்குச் சரிசெய்யும்.
பிழை கையாளுதல் மற்றும் சரிபார்த்தல்
டெம்போரல் ஏபிஐ வலுவானதாக இருந்தாலும், எதிர்பாராத நடத்தையைத் தடுக்க சரியான பிழை கையாளுதல் மற்றும் சரிபார்த்தலைச் செயல்படுத்துவது அவசியம். இங்கே கருத்தில் கொள்ள வேண்டிய சில பொதுவான சூழ்நிலைகள்:
- தவறான கேலெண்டர் பெயர்கள்: `Temporal.Calendar.from()`-க்கு நீங்கள் தவறான கேலெண்டர் பெயரை வழங்கினால், அது ஒரு `RangeError`-ஐ வீசும். இந்தப் பிழையைப் பிடித்து, பயனருக்கு ஏற்ற செய்தியை வழங்கவும்.
- தவறான தேதி வடிவங்கள்: தவறான தேதிச் சரத்திலிருந்து ஒரு `Temporal.PlainDate`-ஐ உருவாக்க முயன்றால், அது ஒரு `RangeError`-ஐ வீசும். `Temporal.PlainDate.from()`-க்கு அனுப்புவதற்கு முன் தேதிச் சரங்களைச் சரிபார்க்கவும்.
- ஆதரிக்கப்படாத செயல்பாடுகள்: சில கேலெண்டர்-குறிப்பிட்ட செயல்பாடுகள் டெம்போரல் ஏபிஐயால் ஆதரிக்கப்படாமல் இருக்கலாம். நீங்கள் பயன்படுத்தும் குறிப்பிட்ட கேலெண்டருக்கான ஆவணங்களைச் சரிபார்க்கவும்.
பல-கேலெண்டர் தேதி மாற்றத்திற்கான சிறந்த நடைமுறைகள்
பல-கேலெண்டர் தேதி மாற்றத்துடன் பணிபுரியும்போது துல்லியம் மற்றும் பராமரிப்பை உறுதிப்படுத்த, இந்த சிறந்த நடைமுறைகளைப் பின்பற்றவும்:
- டெம்போரல் ஏபிஐ-ஐப் பயன்படுத்தவும்: டெம்போரல் ஏபிஐ கேலெண்டர் மாற்றங்களைக் கையாள ஒரு தரப்படுத்தப்பட்ட மற்றும் வலுவான வழியை வழங்குகிறது. இந்தப் நோக்கத்திற்காகப் பழைய ஜாவாஸ்கிரிப்ட் `Date` ஆப்ஜெக்ட்களைப் பயன்படுத்துவதைத் தவிர்க்கவும்.
- கேலெண்டர்களை வெளிப்படையாகக் குறிப்பிடவும்: `Temporal.PlainDate` ஆப்ஜெக்ட்களை உருவாக்கும்போது எப்போதும் கேலெண்டரை வெளிப்படையாகக் குறிப்பிடவும். இது தெளிவின்மையைத் தடுத்து, சரியான கேலெண்டர் விதிகள் பயன்படுத்தப்படுவதை உறுதி செய்கிறது.
- சரியான இஸ்லாமிய கேலெண்டர் வகையைத் தேர்வுசெய்யவும்: பல்வேறு இஸ்லாமிய கேலெண்டர் செயலாக்கங்களுக்கு இடையிலான வேறுபாடுகளைப் புரிந்துகொண்டு, உங்கள் பயன்பாட்டுக்கு மிகவும் பொருத்தமான ஒன்றைத் தேர்ந்தெடுக்கவும்.
- சர்வதேசமயமாக்கலைப் (i18n) பயன்படுத்தவும்: `Intl.DateTimeFormat` ஏபிஐ-ஐப் பயன்படுத்தி, இருப்பிட-விழிப்புணர்வுடன் தேதிகளை வடிவமைக்கவும்.
- பிழை கையாளுதலைச் செயல்படுத்தவும்: தவறான கேலெண்டர் பெயர்கள், தேதி வடிவங்கள் மற்றும் பிற சாத்தியமான சிக்கல்களைப் பிடிக்க வலுவான பிழை கையாளுதலைச் செயல்படுத்தவும்.
- முழுமையாகச் சோதிக்கவும்: துல்லியம் மற்றும் இணக்கத்தன்மையை உறுதிப்படுத்த உங்கள் குறியீட்டை பல்வேறு தேதிகள் மற்றும் இருப்பிடங்களுடன் சோதிக்கவும்.
- புதுப்பித்த நிலையில் இருங்கள்: டெம்போரல் ஏபிஐ இன்னும் வளர்ந்து வருகிறது. சமீபத்திய விவரக்குறிப்புகள் மற்றும் உலாவி செயலாக்கங்களுடன் புதுப்பித்த நிலையில் இருங்கள்.
முடிவுரை
ஜாவாஸ்கிரிப்ட்டின் டெம்போரல் ஏபிஐ, நாம் தேதிகள் மற்றும் கேலெண்டர்களைக் கையாளும் முறையைப் புரட்சிகரமாக்குகிறது, பல-கேலெண்டர் தேதி மாற்றத்தைச் செய்ய ஒரு சக்திவாய்ந்த மற்றும் தரப்படுத்தப்பட்ட வழியை வழங்குகிறது. வெவ்வேறு கேலெண்டர் அமைப்புகளின் நுணுக்கங்களைப் புரிந்துகொண்டு, டெம்போரல் ஏபிஐ-ஐத் திறம்படப் பயன்படுத்துவதன் மூலம், டெவலப்பர்கள் பல்வேறு கலாச்சார மற்றும் மதத் தேவைகளைப் பூர்த்தி செய்யும் உலகளாவிய விழிப்புணர்வுடன் கூடிய பயன்பாடுகளை உருவாக்க முடியும். உங்கள் திட்டங்களில் மேலும் உள்ளடக்கிய மற்றும் துல்லியமான தேதி கையாளும் தீர்வுகளை உருவாக்க டெம்போரல் ஏபிஐ-ஐப் பயன்படுத்திக்கொள்ளுங்கள்.
இந்த வழிகாட்டி ஜாவாஸ்கிரிப்ட் டெம்போரல் ஏபிஐ உடன் கேலெண்டர் மாற்றத்தின் விரிவான கண்ணோட்டத்தை வழங்கியுள்ளது. மிகவும் புதுப்பித்த தகவல்கள் மற்றும் விரிவான விவரக்குறிப்புகளுக்கு அதிகாரப்பூர்வ டெம்போரல் ஏபிஐ ஆவணங்களைப் பார்க்கவும்.