• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Sternzeit Berechnen (Star Trek)

Space Vampire

Senior HTML'ler
Ich bin zwar inzwischen kein ganz blutiger Anfänger mehr, sondern nur noch ein leicht verschorfter :mrgreen:, aber ich bin noch nicht so vermessen mein kleines Produkt hier einfach in Tutorials reinzusätzen, ohne dass der Rest von euch mal drübergeschaut hat :wink:

Ich hab hier ein kleines Script geschrieben, dass die aktuelle Sternzeit berechnet.
Als Grundlage hierfür habe ich eine Berechnungsformel genutzt, die ich bei
startrekvorlesung.fh-kl.de
gefunden habe.
sternzeit = 1000 * (jahr + 1 / s * (x - 1 + stunde/24 + minute/1440) - 2323)
s = Anzahl tage des Jahres
x = aktueller Tag des Jahres

Mein Script berechnet Zwei mögliche Sternzeiten mit Berechnungspunkt ab
- TNG-Base-Jahr: 2323 (wie oben in der Formel)
- Erster Warp-Flug: 2063 (weil ab da ja eigentlich dei Sternzeit berechnet wird...theoretisch *g)

Was man ausgeben lassen möchte, kann man sich dann je nach überzeugung aussuchen.

Würde mich freuen, Meinungen zu hören oder vielleicht sogar Scriptverbesserungen.

PHP:
/* STERNZEIT BERECHNEN */
//FESTSTELLEN DER AKTUELLEN ORTSZEIT UND DATUM
$jahr = date('Y');
$monat = date('m');
$tag = date('d');
$min = date('i');
$stunde = date('H');
$jahreslaenge  = 365.2564; //SCHALTJAHRE EINGESCHLOSSEN
$integer = ".0"; //FALLS EINE GANZE ZAHL BERECHNET WIRD (DIE KOMMASTELLE GEHÖRT NUNMAL IMMER ZUR STERNZEIT DAZU
 
//BERECHNEN DER AKTUELLEN TAGESMENGE DES LAUFENDEN JAHRES
  if ($monat > 1) {$tmp = 31;}
  if ($monat > 2) {$tmp = 59;}
  if ($monat > 3) {$tmp = 90;}
  if ($monat > 4) {$tmp = 120;}
  if ($monat > 5) {$tmp = 151;}
  if ($monat > 6) {$tmp = 181;}
  if ($monat > 7) {$tmp = 212;}
  if ($monat > 8) {$tmp = 243;}
  if ($monat > 9) {$tmp = 273;}
  if ($monat > 10) {$tmp = 304;}
  if ($monat > 11) {$tmp = 334;}
  $jahrestag = $tmp + $tag;
 
//BERECHNEN DER STERNZEIT ANHAND DES JAHRES DES ERSTEN WARP-FLUGES VON ZEFRAN COCHRANE
$sternzeit = 1000 * ($jahr + 1 / $jahreslaenge * ($jahrestag - 1 + $stunde/24 + $min/1440) - 2063);
$sternzeit_tmp = $sternzeit;
$sternzeit = round($sternzeit_tmp,1);
//BERECHNEN DER STERNZEIT ANHAND TNG-BASE
$tng = 1000 * ($jahr + 1 / $jahreslaenge * ($jahrestag - 1 + $stunde/24 + $min/1440) - 2323);
$tng_tmp = $tng;
$tng = round($tng_tmp,1);
//FALLS DIE STERNZEIT EINE GANZE ZAHL IST, HÄNGEN WIR NOCH EIN .0 HINTEN DRAN
if (is_integer($sternzeit)){$sternzeit = $sternzeit.$integer;}
if (is_integer($tng)){$tng = $tng.$integer;}
/* STERNZEIT ENDE */
 
Zuletzt bearbeitet:
Werbung:
Den aktuellen Tag des Jahres bekommst du mit date('z'). Die Ausgabe würde ich mit sprintf() formatieren.
 
Werbung:
Den aktuellen Tag des Jahres bekommst du mit date('z')...
Wuhs?! Sowas gibts?
na da kann ich ja ne Menge code einsparen.

@Mad Dog
Schaltjahresabfrage hatte ich in der ersten Version mit drin.
Kam aber haargenau dasselbe Ergebnis raus wie mit dem krummen wert.
Deswegen hab ich die Codezeilen eingespart.
 
Schaltjahresabfrage hatte ich in der ersten Version mit drin.
Kam aber haargenau dasselbe Ergebnis raus wie mit dem krummen wert.
Deswegen hab ich die Codezeilen eingespart.

okay :D
naja macht auch sinn. schaltjahr hat ja nur 1 tag. und obs nun 1460 oder 1461 sind wird das ergeniss nicht so sehr beeinflussen :D
 
Hab noch mal drüber sinniert Mad Dog
Die Schaltjahresabfrage kann ich in dieser Formel ja nur fürs laufende Jahr machen.
Da das ganze aber eine Langzeitberechnung ist, würden mir alle 4 Jahre der Differenzzeit ein tag fehlen ;-)

Danke noch mal an Crash

Hier die neu gekürzte Version mit date('z')

PHP:
/* STERNZEIT BERECHNEN */
//FESTSTELLEN DER AKTUELLEN ORTSZEIT UND DATUM
$jahr = date('Y');
$monat = date('m');
$tag = date('d');
$min = date('i');
$stunde = date('H');
$jahreslaenge  = 365.2564;
$integer = ".0";
$jahrestag = date('z')+1;
  
//BERECHNEN DER STERNZEIT ANHAND DES JAHRES DES ERSTEN WARP-FLUGES VON ZEFRAN COCHRANE
$sternzeit = 1000 * ($jahr + 1 / $jahreslaenge * ($jahrestag - 1 + $stunde/24 + $min/1440) - 2063);
$sternzeit_tmp = $sternzeit;
$sternzeit = round($sternzeit_tmp,1);
//BERECHNEN DER STERNZEIT ANHAND TNG-BASE
$tng = 1000 * ($jahr + 1 / $jahreslaenge * ($jahrestag - 1 + $stunde/24 + $min/1440) - 2323);
$tng_tmp = $tng;
$tng = round($tng_tmp,1);
/* STERNZEIT ENDE */
 
Werbung:
Hab noch mal drüber sinniert Mad Dog
Die Schaltjahresabfrage kann ich in dieser Formel ja nur fürs laufende Jahr machen.
Da das ganze aber eine Langzeitberechnung ist, würden mir alle 4 Jahre der Differenzzeit ein tag fehlen :wink:
na klar kannst du das nur fuers laufende jahr machen.
aber ist nicht jedes 4te jahr ein schaltjahr?
naja und wenn eben ein schaltjahr ist, dann werden 24 stunden mehr angerechnet, womit die genaue dauer eines jahres erhalten bleibt.

achja da wir es ja mometan von der dauer eines jahres haben.
hier ein bisschen unnoetiges wissen nebenbei:
Das katastrophale Erdbeben in Chile hat die Erdachse verschoben und so die Tage verkürzt! Das sagen Forscher der US-Luft- und Raumfahrtbehörde NASA.
„In dem Fall des Erdbebens in Chile reden wir über 1,26 Mikrosekunden“, erklärt Dr. Lauterjung. Das sind 1,26 millionstel Sekunden!
Quelle: Erdachse verschoben, Erdrotation schneller: Forscher: Monster-Erdbeben in Chile macht Tage k
 
Zurück
Oben