Whiz Tools

காலண்டர் கணக்கீட்டாளர்

காலண்டர் கணக்கீட்டாளன்

அறிமுகம்

காலண்டர் கணக்கீட்டாளன் என்பது தேதி கணக்கீட்டு செயல்பாடுகளை செய்ய வடிவமைக்கப்பட்ட ஒரு பல்துறை கருவி ஆகும். இது பயனர்களுக்கு ஒரு குறிப்பிட்ட தேதியில் இருந்து கால அலகுகளை (ஆண்டு, மாதம், வாரம் மற்றும் நாள்கள்) கூட்ட அல்லது கழிக்க அனுமதிக்கிறது. இந்த கணக்கீட்டாளன் திட்டத்தின் திட்டமிடல், அட்டவணை அமைத்தல் மற்றும் பல்வேறு கால அடிப்படையிலான கணக்கீடுகளுக்கு மிகவும் பயனுள்ளதாக உள்ளது.

சூத்திரம்

காலண்டர் கணக்கீட்டாளன் தேதிக்கான கணக்கீடுகளுக்கு பின்வரும் அல்கோரிதத்தை பயன்படுத்துகிறது:

  1. ஆண்டுகளை கூட்ட/கழிக்க:

    • குறிப்பிட்ட எண்ணிக்கையிலான ஆண்டுகளை தேதியின் ஆண்டுப் பகுதிக்கு கூட்ட/கழிக்கவும்.
    • முடிவில் கிடைக்கும் தேதி பிப்ரவரி 29 ஆக இருந்தால் மற்றும் புதிய ஆண்டு குதிரை ஆண்டு அல்ல என்றால், பிப்ரவரி 28 க்கு சீரமைக்கவும்.
  2. மாதங்களை கூட்ட/கழிக்க:

    • குறிப்பிட்ட எண்ணிக்கையிலான மாதங்களை தேதியின் மாதப் பகுதிக்கு கூட்ட/கழிக்கவும்.
    • முடிவில் கிடைக்கும் மாதம் 12 ஐ விட அதிகமாக இருந்தால், ஆண்டை அதிகரித்து மாதத்தை அதற்கேற்ப சீரமைக்கவும்.
    • முடிவில் கிடைக்கும் மாதம் 1 ஐ விட குறைவாக இருந்தால், ஆண்டை குறைத்து மாதத்தை அதற்கேற்ப சீரமைக்கவும்.
    • முடிவில் கிடைக்கும் தேதி இல்லை என்றால் (எ.கா., ஏப்ரல் 31), மாதத்தின் கடைசி நாளுக்கு சீரமைக்கவும்.
  3. வாரங்களை கூட்ட/கழிக்க:

    • வாரங்களை நாட்களாக மாற்றவும் (1 வாரம் = 7 நாட்கள்) மற்றும் நாள்களின் கணக்கீட்டில் தொடரவும்.
  4. நாட்களை கூட்ட/கழிக்க:

    • அடிப்படையான தேதி நூலகத்தைப் பயன்படுத்தி நாள்களின் கணக்கீட்டைச் செய்யவும், இது தானாகவே குதிரை ஆண்டுகள், மாத மாற்றங்கள் மற்றும் ஆண்டு மாற்றங்களை கையாள்கிறது.

எல்லை வழக்குகள் மற்றும் கருத்துக்கள்

  1. குதிரை ஆண்டுகள்: ஆண்டுகளை கூட்ட/கழிக்கும் போது, பிப்ரவரி 29 க்கான சிறப்பு கவனம் செலுத்தப்படுகிறது. முடிவில் கிடைக்கும் ஆண்டு குதிரை ஆண்டு அல்ல என்றால், தேதி பிப்ரவரி 28 க்கு சீரமைக்கப்படுகிறது.

  2. மாத இறுதித் தேதிகள்: மாதங்களை கூட்ட/கழிக்கும் போது, முடிவில் கிடைக்கும் தேதி இல்லை என்றால் (எ.கா., ஏப்ரல் 31), இது மாதத்தின் கடைசி செல்லுபடியாகும் தேதிக்கு (எ.கா., ஏப்ரல் 30) சீரமைக்கப்படுகிறது.

  3. BCE/CE மாற்றம்: இந்த கணக்கீட்டாளன் BCE/CE மாற்றத்தின் வழியாக தேதிகளை சரியாக கையாள்கிறது, கிரேக்க காலண்டரில் 0 ஆம் ஆண்டு இல்லை என்பதை கருத்தில் கொண்டு.

  4. தேதி எல்லைகள்: இந்த கணக்கீட்டாளன் அடிப்படையான தேதி அமைப்பின் எல்லைகளை மதிக்கிறது, பொதுவாக 1 CE ஜனவரி 1 முதல் 9999 CE டிசம்பர் 31 வரை.

பயன்பாட்டு வழக்குகள்

காலண்டர் கணக்கீட்டாளனுக்கு பல நடைமுறை பயன்பாடுகள் உள்ளன:

  1. திட்ட மேலாண்மை: திட்டத்தின் இறுதிக்காலங்கள், மைல்கல் தேதிகள் மற்றும் ஸ்பிரிண்ட் கால அளவுகளை கணக்கீடு செய்தல்.

  2. நிதி திட்டமிடல்: கட்டண தேதிகள், கடன் காலங்கள் மற்றும் முதலீட்டு கால அளவுகளை கணக்கீடு செய்தல்.

  3. நிகழ்வு திட்டமிடல்: மீண்டும் நிகழும் நிகழ்வுகளுக்கான தேதிகளை, விழா அட்டவணைகளை அல்லது ஆண்டு விழாக்களை கணக்கீடு செய்தல்.

  4. சட்ட மற்றும் ஒப்பந்தம்: சட்ட நடவடிக்கைகளுக்கான இறுதிக்காலங்கள், ஒப்பந்த காலாவதிகள் அல்லது அறிவிப்பு காலங்களை கணக்கீடு செய்தல்.

  5. கல்வி திட்டமிடல்: பருவம் தொடக்கம்/முடிவு தேதிகளை, பணியிடக் கால அளவுகளை அல்லது ஆராய்ச்சி கால அளவுகளை கணக்கீடு செய்தல்.

  6. பயண திட்டமிடல்: பயண கால அளவுகள், விசா காலாவதிகள் அல்லது முன்பதிவு சாளரங்களை கணக்கீடு செய்தல்.

  7. சுகாதாரம்: தொடர்ச்சியான சந்திப்புகளை, மருந்து சுற்றங்களை அல்லது சிகிச்சை கால அளவுகளை திட்டமிடல்.

  8. உற்பத்தி மற்றும் லாஜிஸ்டிக்ஸ்: உற்பத்தி அட்டவணைகளை, விநியோகம் தேதிகளை அல்லது பராமரிப்பு இடைவெளிகளை திட்டமிடல்.

மாற்றுகள்

காலண்டர் கணக்கீட்டாளன் பல்துறை இருப்பினும், தேதிகள் மற்றும் நேரத்தை மாற்றுவதற்கான பிற கருவிகள் மற்றும் முறைகள் உள்ளன:

  1. பரிசீலனை செயல்பாடுகள்: மைக்ரோசாஃப்ட் எக்செல் மற்றும் கூகுள் ஷீட்ஸ் போன்ற நிரல்களில் எளிமையான கணக்கீடுகளுக்கு உள்ளமைவு தேதித் செயல்பாடுகள் உள்ளன.

  2. நிரலாக்க மொழி நூலகங்கள்: பெரும்பாலான நிரலாக்க மொழிகளுக்கு வலுவான தேதி/நேர நூலகங்கள் உள்ளன (எ.கா., Python இல் datetime, JavaScript இல் Moment.js).

  3. ஆன்லைன் தேதி கணக்கீட்டாளர்கள்: பல்வேறு இணையதளங்கள் எளிமையான தேதி கணக்கீட்டு கருவிகளை வழங்குகின்றன, பெரும்பாலும் குறிப்பிட்ட கவனங்களை கொண்டுள்ளன (எ.கா., வேலை நாள்கள் கணக்கீட்டாளர்கள்).

  4. திட்ட மேலாண்மை மென்பொருள்: மைக்ரோசாஃப்ட் திட்டம் அல்லது ஜிரா போன்ற கருவிகள் தங்கள் அட்டவணை செயல்பாடுகளில் தேதி கணக்கீட்டு அம்சங்களை உள்ளடக்கியுள்ளன.

  5. யூனிக்ஸ் டைம் ஸ்டாம்ப் கணக்கீட்டாளர்கள்: தொழில்நுட்ப பயனர்களுக்காக, இந்த கருவிகள் 1970 ஜனவரி 1 முதல் கடந்த செக்குகளாக தேதிகளைப் பயன்படுத்துகின்றன.

  6. மொபைல் பயன்பாடுகள்: பல காலண்டர் மற்றும் உற்பத்தி பயன்பாடுகள் தேதி கணக்கீட்டு அம்சங்களை உள்ளடக்கியுள்ளன.

வரலாறு

தேதி கணக்கீட்டின் கருத்து காலண்டர் அமைப்புகளின் வளர்ச்சியுடன் கூடியே வளர்ந்துள்ளது:

  1. பண்டைய நாகரிகங்கள்: எகிப்தியர்கள், பாபிலோனியர்கள் மற்றும் மாயர்கள் சிக்கலான காலண்டர் அமைப்புகளை உருவாக்கி, தேதி கணக்கீடுகளுக்கான அடித்தளத்தை அமைத்தனர்.

  2. ஜூலியன் காலண்டர் (45 BCE): ஜூலியஸ் சீசர் மூலம் அறிமுகப்படுத்தப்பட்டது, இது சூரிய ஆண்டை நிலைநிறுத்தியது மற்றும் குதிரை ஆண்டுகளின் கருத்தை அறிமுகப்படுத்தியது, நீண்டகால தேதி கணக்கீடுகளை மேலும் துல்லியமாக்கியது.

  3. கிரேக்க காலண்டர் (1582): பாப்பா கிரேக்கோரி XIII மூலம் அறிமுகப்படுத்தப்பட்டது, இது ஜூலியன் காலண்டரின் குதிரை ஆண்டு விதியை மேம்படுத்தியது, தேதி கணக்கீடுகளின் நீண்டகால துல்லியத்தை மேம்படுத்தியது.

  4. நிலையான நேரத்தின் ஏற்றம் (19வது நூற்றாண்டு): நேர மண்டலங்கள் மற்றும் நிலையான நேரத்தின் அறிமுகம் சர்வதேச தேதி மற்றும் நேர கணக்கீடுகளை மேலும் துல்லியமாக்கியது.

  5. கணினி காலம் (20வது நூற்றாண்டு): கணினிகளின் வரலாறு பல்வேறு தேதி/நேர நூலகங்கள் மற்றும் அல்கோரிதங்களை உருவாக்கியது, சிக்கலான தேதி கணக்கீடுகளை அணுகுவதற்கும் வேகமாக்கியது.

  6. யூனிக்ஸ் டைம் ஸ்டாம்ப் (1970): 1970 ஜனவரி 1 முதல் கடந்த செக்குகளாக தேதிகளை பிரதிநிதித்துவப்படுத்துவதற்கான ஒரு நிலையான முறையை அறிமுகப்படுத்தியது, கணினி அமைப்புகளில் தேதி கணக்கீடுகளை எளிதாக்கியது.

  7. ISO 8601 (1988): தேதி மற்றும் நேரத்தை பிரதிநிதித்துவப்படுத்துவதற்கான இந்த சர்வதேச தரநிலை, பல்வேறு அமைப்புகள் மற்றும் கலாச்சாரங்களில் தேதி கணக்கீடுகளை நிலைநிறுத்த உதவியது.

எடுத்துக்காட்டுகள்

பல்வேறு நிரலாக்க மொழிகளில் தேதி கணக்கீடுகளை செய்ய சில குறியீட்டு எடுத்துக்காட்டுகள் இங்கே உள்ளன:

from datetime import datetime, timedelta

def add_time(date_str, years=0, months=0, weeks=0, days=0):
    date = datetime.strptime(date_str, "%Y-%m-%d")
    
    # ஆண்டுகள் மற்றும் மாதங்களை கூட்டவும்
    new_year = date.year + years
    new_month = date.month + months
    while new_month > 12:
        new_year += 1
        new_month -= 12
    while new_month < 1:
        new_year -= 1
        new_month += 12
    
    # மாத இறுதித் தேதிகளை கையாளவும்
    last_day_of_month = (datetime(new_year, new_month % 12 + 1, 1) - timedelta(days=1)).day
    new_day = min(date.day, last_day_of_month)
    
    new_date = date.replace(year=new_year, month=new_month, day=new_day)
    
    # வாரங்கள் மற்றும் நாட்களை கூட்டவும்
    new_date += timedelta(weeks=weeks, days=days)
    
    return new_date.strftime("%Y-%m-%d")

## எடுத்துக்காட்டு பயன்பாடு
print(add_time("2023-01-31", months=1))  # வெளியீடு: 2023-02-28
print(add_time("2023-02-28", years=1))   # வெளியீடு: 2024-02-28
print(add_time("2023-03-15", weeks=2, days=3))  # வெளியீடு: 2023-04-01
function addTime(dateStr, years = 0, months = 0, weeks = 0, days = 0) {
    let date = new Date(dateStr);
    
    // ஆண்டுகள் மற்றும் மாதங்களை கூட்டவும்
    date.setFullYear(date.getFullYear() + years);
    date.setMonth(date.getMonth() + months);
    
    // வாரங்கள் மற்றும் நாட்களை கூட்டவும்
    date.setDate(date.getDate() + (weeks * 7) + days);
    
    return date.toISOString().split('T')[0];
}

// எடுத்துக்காட்டு பயன்பாடு
console.log(addTime("2023-01-31", 0, 1));  // வெளியீடு: 2023-02-28
console.log(addTime("2023-02-28", 1));     // வெளியீடு: 2024-02-28
console.log(addTime("2023-03-15", 0, 0, 2, 3));  // வெளியீடு: 2023-04-01
import java.time.LocalDate;
import java.time.Period;

public class DateCalculator {
    public static String addTime(String dateStr, int years, int months, int weeks, int days) {
        LocalDate date = LocalDate.parse(dateStr);
        
        // ஆண்டுகள், மாதங்கள், வாரங்கள் மற்றும் நாட்களை கூட்டவும்
        LocalDate newDate = date
            .plus(Period.ofYears(years))
            .plus(Period.ofMonths(months))
            .plus(Period.ofWeeks(weeks))
            .plus(Period.ofDays(days));
        
        return newDate.toString();
    }

    public static void main(String[] args) {
        System.out.println(addTime("2023-01-31", 0, 1, 0, 0));  // வெளியீடு: 2023-02-28
        System.out.println(addTime("2023-02-28", 1, 0, 0, 0));  // வெளியீடு: 2024-02-28
        System.out.println(addTime("2023-03-15", 0, 0, 2, 3));  // வெளியீடு: 2023-04-01
    }
}

இந்த எடுத்துக்காட்டுகள் Python, JavaScript மற்றும் Java இல் தேதி கணக்கீடுகளை செய்ய எப்படி என்பதை விளக்குகின்றன, மாத இறுதித் தேதிகள் மற்றும் குதிரை ஆண்டுகள் போன்ற பல்வேறு எல்லை வழக்குகளை கையாள்கின்றன.

எண்ணியல் எடுத்துக்காட்டுகள்

  1. 2023 ஜனவரி 31 க்கு 1 மாதம் கூட்டுதல்:

    • உள்ளீடு: 2023-01-31, 1 மாதம் கூட்டவும்
    • வெளியீடு: 2023-02-28 (பிப்ரவரி 28, 2023)
  2. 2024 பிப்ரவரியில் 1 ஆண்டு கூட்டுதல் (ஒரு குதிரை ஆண்டு):

    • உள்ளீடு: 2024-02-29, 1 ஆண்டு கூட்டவும்
    • வெளியீடு: 2025-02-28 (பிப்ரவரி 28, 2025)
  3. 2023 மார்ச் 15 இல் 2 வாரங்கள் மற்றும் 3 நாட்கள் கழித்தல்:

    • உள்ளீடு: 2023-03-15, 2 வாரங்கள் மற்றும் 3 நாட்கள் கழிக்கவும்
    • வெளியீடு: 2023-02-26 (பிப்ரவரி 26, 2023)
  4. 2022 ஜூலை 31 க்கு 18 மாதங்கள் கூட்டுதல்:

    • உள்ளீடு: 2022-07-31, 18 மாதங்கள் கூட்டவும்
    • வெளியீடு: 2024-01-31 (ஜனவரி 31, 2024)

மேற்கோள்கள்

  1. ரிச்சர்ட்ஸ், இ. ஜி. (2013). காலண்டர்கள். எஸ். இ. உர்பான் & பி. கே. சைடெல்மேன் (எட்கள்.), விண்வெளி அல்மனாக்கிற்கு விளக்க補充 (3வது பதிப்பு, பக்கம் 585-624). மில் வாலி, CA: யூனிவர்சிட்டி சயின்ஸ் புத்தகங்கள்.

  2. டெர்ஷோவிட்ஸ், என்., & ரெயின்கோல்ட், இ. எம். (2008). காலண்ட்ரிக்கல் கணக்கீடுகள் (3வது பதிப்பு). கேம்பிரிட்ஜ் பல்கலைக்கழகம்.

  3. குஹ்ன், எம்., & ஜான்சன், கே. (2013). பயன்பாட்டு முன்னறிவிப்பு மாதிரிகள். ஸ்பிரிங்கர்.

  4. "தேதி மற்றும் நேர வகுப்புகள்". ஓரக்கிளை. https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html

  5. "datetime — அடிப்படை தேதி மற்றும் நேர வகைகள்". பைதான் மென்பொருள் அறிக்கையகம். https://docs.python.org/3/library/datetime.html

  6. "தேதி". மொசில்லா டெவலப்பர் நெட்வொர்க். https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

கருத்து