Introduction
Conditional Calendar Logic வகை கேள்விகளில், weekday, date, அல்லது அவற்றின் தொடர்புகள் குறித்து ஒரு அல்லது பல condition-கள் கொடுக்கப்படும் (உதா: “ஒரு மாதத்தின் 1st நாள் Friday என்றால்…”). அந்த condition-களை வைத்து வேறு ஒரு தேதியின் weekday-ஐ கண்டறிய அல்லது கொடுக்கப்பட்ட முடிவு சரியா என்பதை சரிபார்க்க வேண்டும். இந்த கேள்விகள் odd-day arithmetic மற்றும் logical deduction இரண்டையும் சோதிக்கும் - condition-களை துல்லியமான day-shift-களாக மாற்ற வேண்டும், inclusivity சரியாக கையாள வேண்டும், மேலும் பல condition-களை முரண்பாடு இல்லாமல் இணைக்க வேண்டும்.
Pattern: Conditional Calendar Logic
Pattern
முக்கிய கருத்து: ஒவ்வொரு condition-ஐயும் துல்லியமான mod 7 shift ஆக மாற்றவும், மாதத்தின் 1st நாளிலிருந்து D-வது நாளுக்கு செல்லும்போது எப்போதும் D - 1 பயன்படுத்தவும், பல mod 7 equations-ஐ சேர்த்து consistency சரிபார்க்கவும், மேலும் month length மற்றும் leap-year effect-களை எப்போதும் கணக்கில் கொள்ளவும்.
Step-by-Step Example
Question
ஒரு மாதத்தின் 1st நாள் Friday என்றும், அந்த மாதம் 30 நாட்கள் கொண்டது என்றும் வைத்துக் கொள்ளுங்கள். அந்த மாதத்தின் கடைசி நாள் எந்த நாள்? மேலும், அடுத்த மாதத்தின் 1st நாள் Sunday என்றால், அது முதல் condition-க்கு முரண்பாடா?
Solution
-
Step 1: சரியான shift formula பயன்படுத்தவும்
1st நாள் தெரிந்தால் D-வது நாளின் weekday கண்டறிய formula:
weekday(D) = weekday(1) + (D - 1) mod 7.
n நாட்கள் கொண்ட மாதத்தின் கடைசி நாளுக்கு:
weekday(last) = weekday(1) + (n - 1) mod 7. -
Step 2: 30 நாட்கள் கொண்ட மாதத்திற்கு apply செய்யவும்
இங்கு n = 30 → n - 1 = 29. 29 mod 7 = 1. ஆகவே கடைசி நாள் = Friday + 1 day = Saturday. -
Step 3: அடுத்த மாதத்தின் 1st நாள் சரிபார்க்கவும்
கடைசி நாளுக்கு அடுத்த நாள் தான் அடுத்த மாதத்தின் 1st. கடைசி நாள் Saturday என்றால், அடுத்த மாதத்தின் 1st = Saturday + 1 = Sunday. -
Final Answer:
கடைசி நாள் = Saturday. “அடுத்த மாதத்தின் 1st நாள் Sunday” என்ற statement முதல் condition-க்கு முரண்பாடு இல்லை (consistent). -
Quick Check:
1→Fri, 2→Sat, …, 29→Fri, 30→Sat; அடுத்த நாள் = Sun ✅
Quick Variations
1. 31-day month: n - 1 = 30 ≡ 2 (mod 7) → last day = weekday(1) + 2.
2. February (non-leap): n - 1 = 27 ≡ 6 → last day = weekday(1) - 1 (அல்லது +6).
3. February (leap): n - 1 = 28 ≡ 0 → last day = weekday(1) (1st நாளே).
4. பல condition-கள்: “1st நாள் Friday” மற்றும் “15th நாள் Tuesday” போன்ற statements இருந்தால், mod 7 equations எழுதுங்கள்: weekday(15) = weekday(1) + 14 ≡ weekday(1) (ஏனெனில் 14 ≡ 0). இதன் consistency-ஐ சரிபார்க்கவும்.
Trick to Always Use
- 1st நாளிலிருந்து D-வது நாளுக்கு shift செய்யும்போது எப்போதும் (D - 1) பயன்படுத்துங்கள் - off-by-one தவறு தவிர்க்க.
- மாதத்தின் கடைசி நாளுக்கு shift = (days_in_month - 1) mod 7.
- பல condition-களை mod 7 equations ஆக மாற்றி, ஒரே தேதிக்கு ஒரே weekday கிடைக்கிறதா என்று consistency சரிபார்க்கவும்.
- February-க்கு leap-year விதியை நினைவில் கொள்ளவும் (29 நாட்கள் ⇒ n - 1 = 28 ⇒ 0 mod 7).
- ஒரே தேதிக்கு இரண்டு condition-கள் வேறு weekday-களை கொடுத்தால், அதை conflict என அறிவிக்கவும் - force செய்து பொருத்த முயற்சிக்க வேண்டாம்.
Summary
Summary
- அனைத்து date statement-களையும் mod 7 தொடர்புகளாக மாற்றுங்கள்.
- எப்போதும் formula பயன்படுத்துங்கள்: weekday(D) = weekday(1) + (D - 1) mod 7.
- மாதத்தின் கடைசி நாளுக்கான shift = (days_in_month - 1).
- பல condition-களை சேர்க்கும் போது logical consistency சரிபார்க்கவும்.
- February உள்ள இடங்களில் leap-year effect-ஐ மறக்க வேண்டாம்.
Example to remember:
1st நாள் Friday, 30-day month → கடைசி நாள் Saturday; அடுத்த மாதத்தின் 1st = Sunday.
