Home
Scripts
   · Countdown
   · Formulare
   · Globus
   · Lotterie
   · Passwort
   · Primzahlen
   · Ticker
   · Url-Eingabe
   · Wochentag
Games
Referenz
Links
Gäste
Kontakt

< Wochentag >


Den Wochentag eines beliebigen Datums zwischen dem 01.01.0001 und dem 31.12.9999 mit WMLScript berechnen.

WAP-Standard: 1.1+


wochentag.wml

<?xml version="1.0"?> 
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
      "http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

  <card id="c1" title="Wochentag">
    <p>Form: TT.MM.JJJJ</p>
    <p>
      <input name="date"/>
      <a href="wochentag.wmls#init('$(date)')">Start</a>
    </p>
  </card>

  <card id="c2" title="Wochentag">
    <p>$(weekday)</p>
    <p><a href="#c1">Neue Eingabe</a></p>
  </card>

</wml>


wochentag.wmls

function getWeekDay(date) {
  // Allgemeines Vorgehen:
  // Referenztag ist Samstag, der 01.01.0001.
  // Nun werden alle Tage bis zum Eingabe-Datum gezählt.
  // Alle-Vergangenen-Tage modulo 7 ergibt dann eine Zahl
  // zwischen 0 und 6, die einen Wochentag
  // zwischen Samstag und Freitag repräsentiert.

  // Datum auslesen
  var dd = String.subString(date,0,2);
  var mm = String.subString(date,3,2);
  var yyyy = String.subString(date,6,4);

  // grobe Zählung: Ganze Jahre +
  // Tage im aktuellen Monat + ganze Monate im aktuellen Jahr
  var days = (yyyy-1)*365 + (dd-1)*1;
  for(var i=0;i<mm-1;i++) days +=
    String.elementAt("31 28 31 30 31 30 31 31 30 31 30 31",i," ")*1;

  // Kalenderreform: Sprung vom 04.10.1582 zum 15.10.1582
  if(yyyy>1582 || yyyy==1582 && (mm>10 || mm==10 && dd>4))
    days -= 10;
  if(yyyy==1582 && mm==10 && dd>4 && dd<15)
    return "Datum existiert nicht";

  // Schaltjahre bis 1599: alle Jahre, die durch 4 teilbar sind.
  // Ab 1600: alle Jahre, die durch 4 teilbar sind,
  // außer den vollen Jahrhunderten,
  // es sei denn, sie sind durch 400 teilbar.
  var leapyears = yyyy div 4;
  if(yyyy%4==0 && mm<3) leapyears--;
  if(yyyy>=1600) {
    leapyears -= (yyyy-1600) div 100;
    leapyears += (yyyy-1600) div 400;
      if(yyyy%100==0&& mm<3) {
        leapyears++;
        if(yyyy%400==0) leapyears--;
      }
    }
  days += leapyears;

  return String.elementAt("Sa So Mo Di Mi Do Fr",days%7," ")
     +", "+ dd+"."+mm+"."+yyyy;
}

extern function init(date) {
  var weekday = getWeekDay(date);

  WMLBrowser.setVar("weekday", weekday);
  WMLBrowser.go("wochentag.wml#c2");
}

Download  Wochentag.zip (ca. 1,5 kb)




Copyright © 2002-2003 by wmlscript.de - Alle Rechte vorbehalten
Impressum | Datenschutz | eMail


Der Wochentag im
WAP-Browser:

Auf Card c1 wird das vollständige Datum eingegeben.

Wochentag berechnen mit WML und WMLScript - Eingabe


Card c2 zeigt den Wochentag an.

Wochentag berechnen mit WML und WMLScript - Ausgabe


Alle angebotenen Scripts können Sie mit einem WAP- und WMLScript-fähigen Entgerät auf

www.wmlscript.de/wap

testen.