Sakuläre Zeitmessung

Autor : Gerd Raudenbusch
Stand : 01.01.2025

Ein frohes neues Jahr, zusammen...

Keinen Glauben anzunehmen heißt, in seiner grundlegenden Erkenntnis jungfräulich sein zu können, ohne dafür "Maria" heißen zu müssen. Wer nicht glaubt, weiß sicher auch nicht alles, aber er öffnet mit gesunder Skepsis und gesundem Menschenverstand eine neue Tür, um es in Erfahrung bringen zu können.

Nun tun das zunehmend immer mehr von uns, und die Frage, den eigenen Verlauf seines Lebens überhaupt noch an religiösen Ideen, nämlich der Geburt einer bedeutungslos gewordenen Geschichtsfigur zu messen, kann eigentlich, wie alle historischen Irrtümer, nur noch als ein Relikt des menschlichen Erwach(s)ens betrachtet werden.

Es ist sicher unnötig, deshalb in die Hysterie einer "Umgestaltung der Erinnerungskultur" zu verfallen. Dennoch sei anzuerkennen, dass die Idee eines sakulären Kalenders bereits einige Jahre alt ist und funktioniert hat.

Inhalt

Heutige Kalender

Insgesamt lässt sich schätzen, dass weltweit mindestens 20-25 verschiedene Kalendersysteme aktiv in Gebrauch sind, wobei einige davon nur von kleineren Gemeinschaften oder in spezifischen Kontexten verwendet werden. Die genaue Zahl ist schwer zu bestimmen, da der Grad der Nutzung und die Definition von "aktiver Anwendung" variieren können :

  1. Gregorianischer Kalender - weltweit am meisten verbreitet
  2. Islamischer Kalender (Hidschri-Kalender)
  3. Jüdischer Kalender
  4. Chinesischer Kalender
  5. Äthiopischer Kalender
  6. Persischer Kalender (Dschalāli-Kalender)
  7. Indischer Nationalkalender (Saka-Kalender)
  8. Buddhistischer Kalender (z.B. Chantarakati-Kalender in Thailand)
  9. Chuch'e-Kalender in Nordkorea
  10. Minguo-Kalender in Taiwan
  11. Badi-Kalender (Bahai-Kalender)
  12. Bengalischer Solarkalender
  13. Vikram Sambat in Nepal und Teilen Indiens
  14. Zoroastrischer Kalender (Fasli-, Qadimi- und Shenshai-Varianten)
  15. Diskordianischer Kalender

Viele dieser Kalendersysteme werden parallel zum Gregorianischen Kalender verwendet, oft für religiöse oder kulturelle Zwecke. In einigen Ländern wie Indien werden mehrere regionale Kalender neben dem offiziellen Kalender genutzt. Manche Kalendersysteme, wie der Maya-Kalender, erleben in bestimmten Regionen eine Wiederbelebung. Dennoch vergößert sich mit jedem Tag der Abstand der Menschheit zur Amputation von Wissen und Fähigkeiten durch Angst inform eines Gottesglaubens, wodurch die Frage nach einer sakulären Zeitmessung immer interessanter wird.

Derzeit noch ist weltweit ist kein einziger Kalender in Anwendung, der nicht religiöse Wurzeln hat.

Die Gründe dafür sind :

Sakuläre Zeitmessung

Es haben sich in der Vergangenheit folgende sakuläre Kalender entwickelt :

Der Internationale Ewige Kalender (International Fixed Calendar, IFC) wurde 1923 von Moses Cotsworth vorgestellt und ist auch unter den Namen "13-Monats-Kalender", "Cotsworth-Plan", "Eastman-Plan" oder "Eastman-Kalender" bekannt.

Er teilt das Jahr in 13 Monate zu je 28 Tagen ein, plus einen zusätzlichen Tag am Jahresende : Es gibt 13 Monate, beginnend mit Sonntag, mit je 28 Tagen (13 x 28 = 364) :
Januar, Februar, März, April, Mai, Juni, Sol (oder Midi), Juli, August, September, Oktober, November, Dezember, plus :
Einen zusätzlichen Tag am Jahresende, genannt "Epagomene". Dieser Extratag gehört keinem Monat und keinem Wochentag an. In Schaltjahren wird ein weiterer Extratag eingefügt.

Hier ist ein Kalenderblatt für den Internationalen Ewigen Kalender:

So Mo Di Mi Do Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

Hier ein Überblick, wann die Monate des IFC beginnen und enden :

IFC-Monat Anfang Ende
Januar 1. Januar 28. Januar
Februar 29. Januar 25. Februar
März 26. Februar 25. März*
April 26. März* 22. April*
Mai 23. April* 20. Mai*
Juni 21. Mai* 17. Juni*
Sol 18. Juni* 15. Juli
Juli 16. Juli 12. August
August 13. August 9. September
September 10. September 7. Oktober
Oktober 8. Oktober 4. November
November 5. November 2. Dezember
Dezember 3. Dezember 30. Dezember

* In Schaltjahren liegen diese Daten einen Tag früher. Der Schalttag wird als Extratag zwischen Samstag, den 28. Juni und Sonntag, den 1. Sol eingefügt. Genau wie der Extratag am Jahresende liegt er außerhalb des Wochenzyklus und gehört zu keinem Monat.

Vorteile des IFC

  1. Alle Monate haben die gleiche Länge.
  2. Jeder Monat hat genau vier vollständige Wochen.
  3. Das Datum-Wochentag-Verhältnis bleibt konstant, jedes Datum fällt also immer auf den gleichen Wochentag (z.B. der 13. ist immer ein Freitag).

Der Extratag am Jahresende wird nicht als Wochentag gezählt. Dies ermöglicht die Synchronisation von Woche und Monat.

Umrechnung zwischen Gregorianischem Kalender und Internationalem Ewigen Kalender (IFC)

GET-Parameter 'date' = YYYY-MM-DD GET-Parameter 'direction' = {'toIFC', 'toGregorian'}
 

Die Eingabefelder können Inhalte aus der Seiten-URL übernehmen. Ein Beispielaufruf wäre :

Der Quellcode ist offen und kann frei verwendet werden :


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Gregorian and International Fixed Calendar Converter</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
        }
        h1 {
            color: #333;
        }
        .converter {
            background-color: #f0f0f0;
            padding: 20px;
            border-radius: 5px;
            margin-bottom: 20px;
        }
        input, button, select {
            margin: 10px 0;
            padding: 5px;
        }
        #result {
            font-weight: bold;
            margin-top: 20px;
        }
    </style>
</head>
<body>
    <center>
    <h2>Umrechnung zwischen Gregorianischem<br /> und Internationalem Ewigen Kalender (International Fixed Calendar)</h2>
    </center>
    <div class="converter"><center>
        <table><tr><td>GET-Parameter 'date' = YYYY-MM-DD</td><td>&nbsp;</td><td>GET-Parameter 'direction' = {'toIFC', 'toGregorian'}</td></tr>
        <tr><td><label for="inputDate">Datum :</label><input type="text" id="inputDate" placeholder="YYYY-MM-DD"></td>
        <td>&nbsp;</td>
        <td>
        <select id="conversionDirection">
            <option value="toIFC">Gregorianisch -> IFC</option>
            <option value="toGregorian">IFC ->Gregorianisch</option>
        </select>
        <button onclick="convert()">Umrechnen</button></td></tr>
        </table>
        <center><p id="result"></p></center>
    </div>

    <script>        
        const dayNames = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"];
        
        function convertToIFC(year, month, day) {
            const monthNames = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Sol", "Juli", "August", "September", "Oktober", "November", "Dezember"];
            const isLeapYear = (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
            const daysInMonth = [31, isLeapYear ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
            let leapDay = 169; // Additional day AFTER IFC 28.07. (= AFTER 16.06 gregorian)
            let dayOfYear = day;
            for (let i = 0; i < month - 1; i++) {
                dayOfYear += daysInMonth[i];
            }
            
            if ((isLeapYear) && (dayOfYear > leapDay)) {                    
                    dayOfYear -= 1;  // Fix inserted leap day in total day counter
                    leapDay -= 1;    // Prevent Sol from beeing identified as leap day in further conditions
            }

            let ifcMonth = Math.floor((dayOfYear - 1) / 28);
            let ifcDay = ((dayOfYear - 1) % 28) + 1;
            let dayOfWeek = (dayOfYear - 1) % 7;
            let dayName = dayNames[dayOfWeek];
            let monthName = monthNames[ifcMonth];
            let numericDate = `${ifcDay.toString().padStart(2, '0')}.${(ifcMonth + 1).toString().padStart(2, '0')}.${year}`;
            if ((isLeapYear) && (dayOfYear == leapDay)) {
                let numericDate = `29.06.${year}`;
                return `Schalttag ${year} (${numericDate})`;
            } else if (dayOfYear < 365) {
                return `${dayName}, ${ifcDay.toString().padStart(2, '0')}. ${monthName} (${numericDate})`;
            }  else {
                let numericDate = `${ifcDay.toString().padStart(2, '0')}.${(ifcMonth + 1).toString().padStart(2, '0')}.${year}`;
                return `Jahrestag ${year} (Epagomene) (29.13.${year})`;
            } 
        }

        function convertToGregorian(year, month, day) {
            const monthNames = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
            const isLeapYear = (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
            const daysInMonth = [31, isLeapYear ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
            const leapDay = 57; // Additional day AFTER 28.02 gregorian (=AFTER IFC 04.03.)

            let dayOfYear = (month - 1) * 28 + day;
            if ((isLeapYear) && (dayOfYear > leapDay)) {
                dayOfYear += 1;
            }

            let gregorianMonth = 0;0
            while (dayOfYear > daysInMonth[gregorianMonth]) {
                dayOfYear -= daysInMonth[gregorianMonth];
                gregorianMonth++;
            }

            // Calculate the day of the week for Gregorian
            const date = new Date(year, gregorianMonth, dayOfYear);
            const gmonth = gregorianMonth + 1;
            const monthName = monthNames[gregorianMonth];
            const gday = date.getDate();
            const dayName = dayNames[date.getDay()];
            let  numericDate = `${gday.toString().padStart(2, '0')}.${gmonth.toString().padStart(2, '0')}.${year}`;
            return `${dayName}, ${gday.toString().padStart(2, '0')}. ${monthName} (${numericDate})`;
        }

        function convert() {
            const input = document.getElementById('inputDate').value;
            const direction = document.getElementById('conversionDirection').value;
            const [year, month, day] = input.split('-').map(Number);

            if (isNaN(year) || isNaN(month) || isNaN(day)) {
                document.getElementById('result').textContent = 'Invalid date format. Please use YYYY-MM-DD.';
                return;
            }

            let result;
            if (direction === 'toIFC') {
                result = convertToIFC(year, month, day);
            } else {
                result = convertToGregorian(year, month, day);
            }

            document.getElementById('result').textContent = result;
        }

        // Function to get URL parameters
        function getUrlParameter(name) {
            name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');            
            var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
            var results = regex.exec(location.search);
            var urlParams = new URLSearchParams(location.search);
            var results = urlParams.get(name);               
            return results === null ? '' : results;
        }

        // Set the date and direction from URL parameters if available
        window.onload = function() {
            var dateParam = getUrlParameter('date');
            var directionParam = getUrlParameter('direction');

            if (dateParam) {
                document.getElementById('inputDate').value = dateParam;
            }

            if (directionParam === 'toIFC' || directionParam === 'toGregorian') {
                document.getElementById('conversionDirection').value = directionParam;
            }

            if (dateParam && directionParam) {
                convert();
            }
        };
    </script>
</body>
</html>

Quellen


Zurück zur Hauptseite