Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc-objasniti primer

[es] :: Javascript i AJAX :: Pomoc-objasniti primer

[ Pregleda: 1250 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Be_B_R
Asya Damjanovic
BanjaLuka

Član broj: 285514
Poruke: 2
*.dynamic.telemach.ba.



+1 Profil

icon Pomoc-objasniti primer02.06.2011. u 20:00 - pre 156 meseci
Moze li neko molim vas da mi detaljno objasni sledeci primer:

Code (html):

<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.0 transitional//EN">
<html>
<head>
<TITLE>DAN ROÐENJA</TITLE>
 
<script LANGUAGE="JavaScript">
<!--
function MakeArray(n) {
  this.length = n;
  for (var i = 1; i <=n; i++) {
    this[i] = 0;
  }
}

// definiranje dana u tjednu
nazivDana = new MakeArray(7);
nazivDana[0] = "Subota"
nazivDana[1] = "Nedjelja"
nazivDana[2] = "Ponedjeljak"
nazivDana[3] = "Utorak"
nazivDana[4] = "Srijeda"
nazivDana[5] = "Èetvrtak"
nazivDana[6] = "Petak"

// definiranje mjeseca
nazivMjeseca = new MakeArray(12);
nazivMjeseca[1] = "Sijeèanj"
nazivMjeseca[2] = "Veljaèa"
nazivMjeseca[3] = "Ožujak"
nazivMjeseca[4] = "Travanj"
nazivMjeseca[5] = "Svibanj"
nazivMjeseca[6] = "Lipanj"
nazivMjeseca[7] = "Srpanju"
nazivMjeseca[8] = "Kolovoz"
nazivMjeseca[9] = "Rujan"
nazivMjeseca[10] = "Listopad"
nazivMjeseca[11] = "Studeni"
nazivMjeseca[12] = "Prosinac"

// funkcija za izraèun dana u tjednu
function izracunajDanUtjednu(mojaForma) {
  var xDan = parseInt(mojaForma.dan.value, 10)
  if ((xDan < 0) || (xDan > 31)) {
     alert("Dan je izvan opsega!")
  }
  var xMjesec = parseInt(mojaForma.mjesec.value, 10)
  if ((xMjesec < 0) || (xMjesec > 12)) {
     alert("Mjesec je izvan opsega!")
  }  
  var xMjesecx = parseInt(mojaForma.mjesec.value, 10)
  var xGodina = parseInt(mojaForma.godina.value, 10)
  if (xGodina < 1900) {
     alert("Godina je izvan opsega!")
  }
  if (xMjesec == 1) {
     xMjesecx = 13;
     xGodina = xGodina-1
  }
  if (xMjesec == 2) {
     xMjesecx = 14;
     xGodina = xGodina-1
  }
  var x01 = parseInt(((xMjesecx+1)*3)/5, 10)
  var x02 = parseInt(xGodina/4, 10)
  var x03 = parseInt(xGodina/100, 10)
  var x04 = parseInt(xGodina/400, 10)
  var x05 = xDan+(xMjesecx*2)+x01+xGodina+x02-x03+x04+2
  var x06 = parseInt(x05/7, 10)
  var x07 = x05-(x06*7)
  mojaForma.datumRodjenja.value = nazivMjeseca[xMjesec]+" "+mojaForma.dan.value +", "+mojaForma.godina.value
  mojaForma.danRodjenja.value = nazivDana[x07]
}  

//  -->
</script>
 
</HEAD>
 
<BODY>
 
<h3>KOJEG DANA U TJEDNU STE ROÐENI?</h3>
 
<p><B>Upišite datum vašeg roðenja</b></p>
 
<form>
  <p>Dan roðenja (1-31): <input TYPE="text" NAME="dan" SIZE="2"> </p>
  <p>Mjesec roðenja (1-12): <input TYPE="text" NAME="mjesec" SIZE="2"> </p>
  <p>Godina roðenja (npr. 1980): <input TYPE="text" NAME="godina" SIZE="4"> </p>
  <p><input TYPE="button" VALUE="Izraèunaj" ONCLICK="izracunajDanUtjednu(this.form)">
     <input TYPE="reset" VALUE="Poništi"> </p>
  <p>Datum roðenja: <input TYPE="text" NAME="datumRodjenja" SIZE="18"> </p>
  <p>Dan u tjednu: <input TYPE="text" NAME="danRodjenja" SIZE="18"> </p>

</form>
 


PS:Hitno je i hvala unapred..


[moderator: ubačeni [code][/code] tagovi]

[Ovu poruku je menjao Aleksandar Ružičić dana 03.06.2011. u 00:35 GMT+1]
Asya
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Pomoc-objasniti primer03.06.2011. u 12:01 - pre 156 meseci
Šta nije jasno u kodu?

Klikom na dugme izračunaj poziva se JavaScript funkcija izracunajDanUtjednu().
Zatim npr
Code:

  var xDan = parseInt(mojaForma.dan.value, 10)
  if ((xDan < 0) || (xDan > 31)) {
    alert("Dan je izvan opsega!")
  }

Uzima se vrednost za polje sa nazivom dan i pošto se očekuje da je vrednost polja celi broj (celobrojna vrednost) koristi se parseInt, vrednost koju vraća osobina value je string, drugi argument funkcije parseInt je da se osigura, odnosno ukloni, ukoliko neko unese dan koji na prvom mestu ima nulu (0), npr. "09", da to parseInt funkcija ne bi videla kao oktalnu vrednost.
Pomoću if petlje se ispituje da li je uneti dan u odgovarajućem opsegu 1-31

Slično sve ovo se radi i za polja mjesec i godina, da ne pišem duplo samo su različiti opsezi.

Zatim se na osnovu unetih vrednosti računa dan u nedelji. Pogledaj Zeller's congruence a takođe možeš pogledati i Doomsday algoritam, ili Calculating the day of the week, možda i grešim nisam baš detaljno gledao, ispraviće me neko.

Ovo bi moglo možda i jednostavnije da se računa, pomoću već ugrađenih mogućnosti u Date objektu, nešto kao

Code:
new Date(godinaRođenja, mececRođenjaOd_0_Do_11, danRodjena).getDay()

pri čemu se dobija vrednost od 0 do 6, pri čemu je 0 Nedelja a 6 Subota.
Banned - Not available
 
Odgovor na temu

[es] :: Javascript i AJAX :: Pomoc-objasniti primer

[ Pregleda: 1250 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.