Spoznali bomo
- Kako z JavaScritom kreiramo koledar za poljuben mesec in leto
Sestavi spletno stran in jo poimenuj 29vaja-JS-priimek-ime.html. Stran naj bo izdelana v HTML5 in s CSS, program pa naj bo napisan z JavaScriptom.
Navodila za izdelavo spletne strani: Koledar 2
- laboratorijska vaja: izračun števila dni v mesecu:
- Vnos meseca in leta s funkcijo
prompt()
. - Izračun števila dni v mesecu:
- Februar ima 29 dni za prestopna leta, sicer ima 28 dni. Ostali meseci:
- 31 dni imajo lihi meseci od januarja do julija in sodi meseci od avgusta do decembra.
- 30 dni imajo sodi meseci od januarja do julija in lihi meseci od avgusta do decembra.
- Preverjanje, ali je leto prestopno:
- Leto je prestopno, če je številka leta deljiva s 4 (leta 1988, 1992, 1996 so prestopna).
- Leta, ki so deljiva s 100, niso prestopna, čeprav bi po prejšnjem pravilu morala biti (leta 1700, 1800, 1900 niso prestopna).
- Če je pa leto deljivo s 400, je leto spet prestopno, čeprav po prejšnjem pravilu ne bi smelo biti (leta 1600, 2000, 2400 so prestopna).
- Vnos meseca in leta s funkcijo
- laboratorijska vaja:
koledar za poljuben mesec in leto:
- Spremenljivki za začetni dan in število dni v mesecu, dve vgnezdeni zanki
for
(ali ena zankafor
z dodanim stavkomif
za prelome vrstic) za izpis vrstic in stoplcev tabele. - Izračun začetnega dneva iz vnešenega meseca in leta (objektni tip
Date
, postopekgetDay()
). - Elemente HTML naj dodaja v znakovni niz, ki ga na koncu izpiše s postopkom
document.write()
.
- Spremenljivki za začetni dan in število dni v mesecu, dve vgnezdeni zanki
- laboratorijska vaja:
Fiksni prazniki, izračun velike noči; Uporaba funkcij:
- Tabela (objektni tip
Array
), ki vsebuje podatke o datumih fiksnih praznikov za celo leto. (Seznam praznikov in dela prostih dni v Republiki Sloveniji) - Izpis fiksnih praznikov, sobot in nedelj z različnimi barvami.
- Izračun velike noči za izbrano leto, glej formule.
- Tabela (objektni tip
- laboratorijska vaja (neobvezno):
Uporaba obrazca; Lastnost
innerHTML
:- Vnos meseca in leta s pomočjo elementa
form
. - Izpis prazne tabele.
- Povezava podatka iz obrazca s spremenljivko v JavaScriptu s postopkom
document.getElementById()
. - Ob pritisku na gumb spreminjanje tabele z lastnostjo
innerHTML
.
- Vnos meseca in leta s pomočjo elementa
Formula za izračun velike noči
Veliko noč izračunamo po formuli Oudin-a (1940). Več o izračunu velike noči in koledarjih si preberi
tukaj.
Za izbrano leto (Y
) gregorijanskega koledarja, Y > 1582
, izračunamo dan (D
) in mesec (M
) velike noči s pomočjo spodnjih formul.
Vse spremenljivke so celoštevilske.
Vsa deljenja so celoštevilska.
Pri vsakem deljenju uporabimo postopek Math.floor()
, ki vrne največje celo število, ki je manjše ali enako argumentu.
C = Y/100 N = Y - 19*(Y/19) K = (C - 17)/25 I = C - C/4 - (C - K)/3 + 19*N + 15 I = I - 30*(I/30) I = I - (I/28)*(1 - (I/28)*(29/(I + 1))*((21 - N)/11)) J = Y + Y/4 + I + 2 - C + C/4 J = J - 7*(J/7) L = I - J M = 3 + (L + 40)/44 D = L + 28 - 31*(M/4)Pravilnost algoritma preverite s pomočjo spodnje tabele, ki prikazuje nekaj datumov velikih noči.
06. 04. 1980 | 15. 04. 1990 | 23. 04. 2000 | 04. 04. 2010 | 12. 04. 2020 |
19. 04. 1981 | 31. 03. 1991 | 15. 04. 2001 | 24. 04. 2011 | 04. 04. 2021 |
11. 04. 1982 | 19. 04. 1992 | 31. 03. 2002 | 08. 04. 2012 | 17. 04. 2022 |
03. 04. 1983 | 11. 04. 1993 | 20. 04. 2003 | 31. 03. 2013 | 09. 04. 2023 |
22. 04. 1984 | 03. 04. 1994 | 11. 04. 2004 | 20. 04. 2014 | 31. 03. 2024 |
07. 04. 1985 | 16. 04. 1995 | 27. 03. 2005 | 05. 04. 2015 | 20. 04. 2025 |
30. 03. 1986 | 07. 04. 1996 | 16. 04. 2006 | 27. 03. 2016 | 05. 04. 2026 |
19. 04. 1987 | 30. 03. 1997 | 08. 04. 2007 | 16. 04. 2017 | 28. 03. 2027 |
03. 04. 1988 | 12. 04. 1998 | 23. 03. 2008 | 01. 04. 2018 | 16. 04. 2028 |
26. 03. 1989 | 04. 04. 1999 | 12. 04. 2009 | 21. 04. 2019 | 01. 04. 2029 |
Slika spletne strani, ko se stran naloži v brskalniku: