Weltzeituhr

Im Folgenden zeige ich Ihnen eine auf UTV (Universal Coordinated) basierende Lösung.

Das folgende Code-Beispiel ist sowohl für Flash MX, als auch für Flash MX 2004 geeignet:

// AnalogUhr
function initUTCUhr(posX,posY,radius,pzone,pstadt,pname,ptiefe) {
 // Variablen Initialisierung
 var radiant, start_x, start_y, end_x, end_y;
 var zeit,std,mins,sek;
 var sek_winkel,min_winkel,std_winkel;
 var sek_radiant,min_radiant,std_radiant;
 var sek_x,sek_y,min_x,min_y,std_x,std_y;

 // Winkel in Bogenmass
 function winkelBogen(winkel) {
  return winkel/180*Math.PI;
 }

 // MovieClip für AnalogUhr erzeugen
 this.createEmptyMovieClip(pname,ptiefe);

 // Textfeld für Statdanzeige erzeugen
 this[pname].createTextField("anzeige_txt",ptiefe+1,posX,posY+radius,0,0);
 this[pname].anzeige_txt.autoSize = "center";
 this[pname].anzeige_txt.text = pstadt;

 // Ziffernblatt zeichnen
 for(var i=1; i<=60; i++) {
  radiant = winkelBogen(i*6);
  if (i%5 == 0) {
   start_x = Math.cos(radiant)*(radius-10);
   start_y = Math.sin(radiant)*(radius-10);
   end_x = Math.cos(radiant)*radius;
   end_y = Math.sin(radiant)*radius;
   this.lineStyle(2, 0, 100);
   this.moveTo(posX+start_x, posY+start_y);
   this.lineTo(posX+end_x, posY+end_y);
  } else {
   start_x = Math.cos(radiant)*(radius-5);
   start_y = Math.sin(radiant)*(radius-5);
   end_x = Math.cos(radiant)*radius;
   end_y = Math.sin(radiant)*radius;
   this.lineStyle(1, 0, 100);
   this.moveTo(posX+start_x, posY+start_y);
   this.lineTo(posX+end_x, posY+end_y);
  }
 }

 this[pname].onEnterFrame = function() {
  // Zeiger entfernen
  this.clear();
  // Uhrzeit ermitteln
  zeit = new Date();
  sek = zeit.getUTCSeconds();
  mins = zeit.getUTCMinutes();
  std = zeit.getUTCHours()+pzone;
  // AM/PM ermitteln
  if (std >= 24) {
   std = std - 24;
  }
  if (std < 12) {
   this.anzeige_txt.text = pstadt + " / am";
  } else {
   this.anzeige_txt.text = pstadt + " / pm";
  }
  // Zeigerwinkel berechnen
  sek_winkel = sek*6-90;
  min_winkel = mins*6-90;
  std_winkel = std*30+mins/60*30-90;
  // die winkel werden in bogenmaße umgerechnet
  sek_radiant = winkelBogen(sek_winkel);
  min_radiant = winkelBogen(min_winkel);
  std_radiant = winkelBogen(std_winkel);
  // Zeigerpunkte via Sin/Cos berechnen
  // Sekunden
  sek_x = posX + Math.cos(sek_radiant)*radius;
  sek_y = posY + Math.sin(sek_radiant)*radius;
  // Minuten
  min_x = posX + Math.cos(min_radiant)*(radius*1);
  min_y = posY + Math.sin(min_radiant)*(radius*1);
  // Sekunden
  std_x = posX + Math.cos(std_radiant)*(radius*.75);
  std_y = posY + Math.sin(std_radiant)*(radius*.75);
  // Zeiger zeichnen
  // Sekunden
  this.lineStyle(1, 0xff0000, 100);
  this.moveTo(posX, posY);
  this.lineTo(sek_x, sek_y);
  // Minuten
  this.lineStyle(2, 0, 100);
  this.moveTo(posX, posY);
  this.lineTo(min_x, min_y);
  // Stunden
  this.lineStyle(3, 0, 100);
  this.moveTo(posX, posY);
  this.lineTo(std_x, std_y);
 }
}

// Städte und Zeitzonen
var x=0,y=0;
stadtliste = new Array("Berlin","Istanbul","New York","Moskau","Tokyo","Sydney");
zonenliste = new Array(2,3,-5,4,9,10);

// Uhren erzeugen
for (var j=0; j < stadtliste.length; j++) {
 startpos = 150;
 x++;
 pX = startpos + 120*x;
 if (j%3 == 0) {
  x=0;
  y++;
  pX = startpos;
  pY = 120*y;
 }
 initUTCUhr(pX,pY,50,zonenliste[j],stadtliste[j],"uhr"+j,j);
}

Einzeln können die analogen Uhren natürlich ebenfalls erzeugt werden:

// Uhren (UTC)
// Berlin (+01:00)
initUTCUhr(Stage.width/2,Stage.height/2,50,1,"Berlin","uhr",1);
// Istanbul (+02:00)
initUTCUhr(Stage.width/2,75,50,2,"Istanbul","uhr2",2);
// New York (-05:00)
initUTCUhr(Stage.width/2,325,50,-5,"New York","uhr3",3);

Hinweise: Im normalen, täglichen Gebrauch können UTC und GMT gleichgesetzt werden.

Die UTC (Universal Time Coordinated) wird durch Mittelung der Zeittakte von genau 100 ausgewählten, in diversen Staaten betriebenen, Atomuhren erzeugt. Die Signale dieser Atomuhren laufen beim "Internationalen Büro für die Zeit" in Paris zusammen. In Deutschland wurde die UTC durch das "Gesetz über die Zeitbestimmung" vom 25.07. 1978 eingeführt. In den Arbeitskarten und Unterlagen des Deutschen Wetterdienstes wird die UTC seit 1985 verwendet.

MEZ (MittelEuropäische Zeit) ist die mittlere Sonnenzeit des durch Görlitz verlaufenden 15. östlichen Meridians.

MESZ (MittelEuropäische SommerZeit) ist die, gegenüber der mitteleuroäischen Zeit um 1 Stunde vorverlegte, Uhrzeit zur besseren Ausnutzung des Tageslichtes und zur Herbeiführung von Erleichterungen im europäischen Bahnreiseverkehr während des Sommerhalbjahres.

Die GZ (Gesetzliche Zeit) wurde durch das Zeitgesetz von 1978 die mitteleuropäische Zeit MEZ oder die mitteleuropäische Sommerzeit MESZ als gesetzliche Zeit festgelegt. Sie soll im amtlichen und geschäftlichen Verkehr verwendet werden. Die Bezeichnung GZ bei Zeitangaben bedeutet daher im Sommer MESZ und im Winter MEZ.

Der Unterschied zwischen MEZ beziehungsweise MESZ und der koordinierten Weltzeitskala UTC beträgt:

MEZ = UTC + 1h
MESZ = UTC + 2h

Autor: Matthias Kannengiesser
Website: Flashstar.de
Weitere Funktionen
Zur Artikel-Übersicht
Diesen Artikel ausdrucken
Beispiel downloaden
Online-Beispiel ansehen
Haben Sie noch Fragen? Fragen Sie auf computer-portal.net.
Bewertung
Dieser Tipp wurde für genial mit 10 von 10 Punkten [ 1 Stimme(n) ] befunden.

Bewertung in Punkten [10 = genial, 1 = sehr schlecht]:      
Kommentare
Bisherige Kommentare ansehen:
Zu diesem Artikel wurden noch keine Kommentare verfasst.

Einen eigenen Kommentar verfassen:
Sie müssen sich erst registrieren um einen Kommentar verfassen zu können.

Bestellen
Abbestellen
    
    
    Weitere Informationen
  Welchen Browser nutzen Sie?
Internet Explorer
Mozilla
Mozilla Firefox
Netscape
Opera
Safari
Sonstige
    Ergebnis ansehen