IBAN: DE30 2585 0110 0046 0424 20
BIC: NOLADE21UEL
Stichwort: PERRYPEDIA
Institut: SK Uelzen Lüchow-Dannenberg
Kontoinhaber: PERRY RHODAN FAN ZENTRALEDeine Spenden helfen, die Perrypedia zu betreiben.Benutzer:Beejay/Spielwiese/Diverses/Adoc-Lian
< Benutzer:Beejay | Spielwiese | Diverses
Zur Navigation springen
Zur Suche springen
<html> <head><title>Zeitumrechnung Adoc-Lian in terranische Zeitrechnung</title> </head> <body> <script type="text/javascript">
function calcSecsMin (fe, es) {
// Funktion zur Addition bzw. Subtraktion des Sekunden- oder Minutenwertes es auf den Wert fe
// inklusive Übertragsrechnung; Annahme: sowohl fe als auch es bewegen sich zwischen 0 und 59
var result = new Array (2);
result[0] = 0; // Übertragswert
result[1] = fe + es; // Ergebnis
if (result[1] > 59) {
result[0] = 1;
result[1] = fe + es - 60;
}
else if (result[1] < 0) {
result[0] = -1;
result[1] = fe + es + 60;
}
return result;
}
function calcHours (fe, es) {
// Funktion zur Addition bzw. Subtraktion des Stundenwertes es auf den Wert fe
// inklusive Übertragsrechnung; Annahme: sowohl fe als auch es bewegen sich zwischen 0 und 23
var result = new Array (2);
result[0] = 0; // Übertragswert
result[1] = fe + es; // Ergebnis
if (result[1] > 23) {
result[0] = 1;
result[1] = fe + es - 24;
}
else if (result[1] < 0) {
result[0] = -1;
result[1] = fe + es + 24;
}
return result;
}
function calcYearsUp (fed, fem, fey, es) {
// Funktion zur Berechnung des Tageswertes, basierend auf einem Startwert fed für den Tag, fem für den Monat und fey für das Jahr,
// sowie es als Offset in Tagen; Annahme: es ist positiv, das Ergebnis liegt somit in der Zukunft.
var result = new Array (3);
result[0] = fed; // Ergebnis = Tag
result[1] = fem; // Ergebnis = Monat
result[2] = fey; // Ergebnis = Jahr
while (es > 0) {
result[0] = result[0] + 1;
es = es - 1;
// Wenn Monat Januar und Monatende erreicht ...
if (result[1] == 1) {
if (result[0] == 32) {
result[0] = 1;
result[1] = 2;
}
}
// Wenn Monat Februar und Monatende erreicht ...
else if (result[1] == 2) {
// Berücksichtigung Schaltjahre
if ((result[2] % 400 == 0) || ((result[2] % 4 == 0) && (result[2] % 100 != 0))) {
if (result[0] == 30) {
result[0] = 1;
result[1] = 3;
}
}
else if (result[0] == 29) {
result[0] = 1;
result[1] = 3;
}
}
// Wenn Monat März und Monatende erreicht ...
else if (result[1] == 3) {
if (result[0] == 32) {
result[0] = 1;
result[1] = 4;
}
}
// Wenn Monat April und Monatende erreicht ...
else if (result[1] == 4) {
if (result[0] == 31) {
result[0] = 1;
result[1] = 5;
}
}
// Wenn Monat Mai und Monatende erreicht ...
else if (result[1] == 5) {
if (result[0] == 32) {
result[0] = 1;
result[1] = 6;
}
}
// Wenn Monat Juni und Monatende erreicht ...
else if (result[1] == 6) {
if (result[0] == 31) {
result[0] = 1;
result[1] = 7;
}
}
// Wenn Monat Juli und Monatende erreicht ...
else if (result[1] == 7) {
if (result[0] == 32) {
result[0] = 1;
result[1] = 8;
}
}
// Wenn Monat August und Monatende erreicht ...
else if (result[1] == 8) {
if (result[0] == 32) {
result[0] = 1;
result[1] = 9;
}
}
// Wenn Monat September und Monatende erreicht ...
else if (result[1] == 9) {
if (result[0] == 31) {
result[0] = 1;
result[1] = 10;
}
}
// Wenn Monat Oktober und Monatende erreicht ...
else if (result[1] == 10) {
if (result[0] == 32) {
result[0] = 1;
result[1] = 11;
}
}
// Wenn Monat November und Monatende erreicht ...
else if (result[1] == 11) {
if (result[0] == 31) {
result[0] = 1;
result[1] = 12;
}
}
// Wenn Monat Dezember und Monatende erreicht ...
else if (result[1] == 12) {
if (result[0] == 32) {
result[0] = 1;
result[1] = 1;
result[2] = result[2] + 1; // Jahresübertrag
}
}
}
return result;
}
function calcYearsDown (fed, fem, fey, es) {
// Funktion zur Berechnung des Tageswertes, basierend auf einem Startwert fed für den Tag, fem für den Monat und fey für das Jahr,
// sowie es als Offset in Tagen; Annahme: es ist negativ, das Ergebnis liegt somit in der Vergangenheit.
var result = new Array (3);
result[0] = fed; // Ergebnis = Tag
result[1] = fem; // Ergebnis = Monat
result[2] = fey; // Ergebnis = Jahr
while (es < 0) {
result[0] = result[0] - 1;
es = es + 1;
// Wenn Monatanfang erreicht ...
if (result[0] == 0) {
// Januar --> Dezember + Jahresübertrag
if (result[1] == 1) {
result[0] = 31;
result[1] = 12;
result[2] = result[2] - 1;
}
// Februar --> Januar
else if (result[1] == 2) {
result[0] = 31;
result[1] = 1;
}
// März --> Februar unter Berücksichtigung Schaltjahre
else if (result[1] == 3) {
if ((result[2] % 400 == 0) || ((result[2] % 4 == 0) && (result[2] % 100 != 0))) {
result[0] = 29;
result[1] = 2;
}
else {
result[0] = 28;
result[1] = 2;
}
}
// April --> März
else if (result[1] == 4) {
result[0] = 31;
result[1] = 3;
}
// Mai --> April
else if (result[1] == 5) {
result[0] = 30;
result[1] = 4;
}
// Juni --> Mai
else if (result[1] == 6) {
result[0] = 31;
result[1] = 5;
}
// Juli --> Juni
else if (result[1] == 7) {
result[0] = 30;
result[1] = 6;
}
// August --> Juli
else if (result[1] == 8) {
result[0] = 31;
result[1] = 7;
}
// September --> August
else if (result[1] == 9) {
result[0] = 31;
result[1] = 8;
}
// Oktober --> September
else if (result[1] == 10) {
result[0] = 30;
result[1] = 9;
}
// November --> Oktober
else if (result[1] == 11) {
result[0] = 31;
result[1] = 10;
}
// Dezember --> November
else if (result[1] == 12) {
result[0] = 30;
result[1] = 11;
}
}
}
return result;
}
function calcYears (fed, fem, fey, es) {
// Funktion zur Berechnung des Tageswertes, basierend auf einem Startwert fed für den Tag, fem für den Monat und fey für das Jahr,
// sowie es als Offset in Tagen.
var result = new Array (3);
result[0] = fed; // Ergebnis = Tag
result[1] = fem; // Ergebnis = Monat
result[2] = fey; // Ergebnis = Jahr
// Liegt das Ergebnis in der Vergangenheit ...
if (es < 0) {
result = calcYearsDown (fed, fem, fey, es);
}
// Liegt das Ergebnis in der Zukunft ...
else if (es > 0) {
result = calcYearsUp (fed, fem, fey, es);
}
return result;
}
function pad2two (i) {
// Funktion zur Formatierung von Datumsausgaben, z.B. 1.1.2013 -> 01.01.2013
if (i <= 9) {
return "0" + i.toString();
}
else {
return i.toString();
}
}
function convertEscalian () {
// Funktion zur Umwandlung von Adoc-Lian (Escalian) in terranische Zeitrechnung
var new_escalian = '0x' + document.Eingabe.Adoclian.value;
// var new_escalian = '0x3A17CA2000';
var fixed_escalian = '0x3AB03E8500'; // Referenzgröße Adoc-Lian
var fixed_earth = '09.01.1470 NGZ 09:45:00'; // Referenzgröße terranisch
var fixed_earth_sec = parseInt (fixed_earth.slice (21, 23));
var fixed_earth_min = parseInt (fixed_earth.slice (18, 20));
var fixed_earth_hour = parseInt (fixed_earth.slice (15, 17));
var fixed_earth_date = parseInt (fixed_earth.slice (0, 2));
var fixed_earth_month = parseInt (fixed_earth.slice (3, 5));
var fixed_earth_year = parseInt (fixed_earth.slice (6, 10)) + 3587;
var delta_escalian = parseInt(new_escalian,16) - parseInt(fixed_escalian,16); // Berechnung zeitlicher Abstand in Lil
var earth_seconds = Math.round(delta_escalian * 1.2); // Umrechnung zeitlicher Abstand in Sekunden
var r1 = new Array (2);
var r6 = new Array (3);
// Umrechnung in Sekunden (es), Minuten (em), Stunden (eh) und Tage (ed)
var es = earth_seconds % 60;
var em = Math.round (earth_seconds / 60) % 60;
var eh = Math.round (earth_seconds / 3600) % 24;
var ed = Math.round (earth_seconds / (3600 * 24));
// Berechnung des Sekundenwertes (r1[1] = Sekundenwert, r1[0] = Übertrag Minutenwert)
r1 = calcSecsMin (fixed_earth_sec, es);
var r2 = r1[1];
var r3 = r1[0];
// Berechnung des Minutenwertes (r1[1] = Minutenwert, r1[0] = Übertrag Stundenwert)
r1 = calcSecsMin (fixed_earth_min, em + r3);
r3 = r1[1];
var r4 = r1[0];
// Berechnung des Stundenwertes (r1[1] = Stundenwert, r1[0] = Übertrag Tageswert)
r1 = calcHours (fixed_earth_hour, eh + r4);
r4 = r1[1];
var r5 = r1[0];
// Berechnung von Tagen, Monaten, Jahren (r6[0] = Tag, r6[1] = Monat, r6[2] = Jahr)
r6 = calcYears (fixed_earth_date, fixed_earth_month, fixed_earth_year, ed + r5);
var resultStr;
// Umwandlung in NGZ, v.Chr, n.Chr.
if (r6[2] >= 3588) {
r6[2] = r6[2] - 3587;
resultStr = pad2two (r6[0]) + "." + pad2two(r6[1]) + "." + r6[2].toString() + " NGZ " +
pad2two (r4) + ":" + pad2two (r3) + ":" + pad2two (r2);
}
else if (r6[2] >= 0) {
resultStr = pad2two (r6[0]) + "." + pad2two(r6[1]) + "." + r6[2].toString() + " n.Chr. " +
pad2two (r4) + ":" + pad2two (r3) + ":" + pad2two (r2);
}
else {
r6[2] = -r6[2];
resultStr = pad2two (r6[0]) + "." + pad2two(r6[1]) + "." + r6[2].toString() + " v.Chr. " +
pad2two (r4) + ":" + pad2two (r3) + ":" + pad2two (r2);
}
document.Eingabe.Terranisch.value = resultStr;
}
</script>
Script zur Umrechnung von Datumsangaben der Zeitrechnung Adoc-Lian, die in der Galaxie Escalian verwendet wird, in die auf Terra übliche Zeitrechnung
<form action="input_text.htm" name="Eingabe">
Adoc-Lian (bitte in der Schreibweise wie 3AB03E8500 eingeben)
<input name="Adoclian" type="text" size="15" maxlength="15">
Terranisch:
<input name="Terranisch" type="text" size="30" maxlength="30"
</form> <button type="button" onclick="convertEscalian()">Berechnen</button> </body> </html>