SWiSH Forum
Forum użytkowników programów SWiSH

Skrypty do programu SWiSH2 i SWISHmax - Zliczanie dni

roland - Pon 25 Kwi, 2005 07:06
Temat postu: Zliczanie dni
Jeden z postów dotyczących obliczania różnicy dni pomiędzy dwiema datami, zainspirował mnie do napisania skryptu umożliwiającego wyświetlenie dni, jakie pozostały do końca roku.

Skrypt pobiera datę z zegara systemowego.

Kod:
onLoad () {

 // (c) 2004 Roland Zimek.
 // Skrypt obliczający liczbę dni pozostałych do końca roku.
 // Definicja zmiennej przechowującej obliczane na bieżąco dni.
 suma=0;
 // Definicja tablicy przechowującej liczbę dni w poszczególnych miesiącach.
 DniWMiesiacu = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
 // Deklaracja zmiennej przechowującej dzisiejszą datę.
 data = new Date();

 // Deklaracja zmiennych przechowyjących bieżący dzień, miesiąc i rok.
 // Uwaga. Zmienna miesiąc jest o 1 mniejsza od rzeczywistej.
 dzien = data.getDate();
 miesiac = data.getMonth();
 rok = data.getFullYear();

 // Pętla zliczająca ile dni jest w poszczególnych miesiącach,
 // począwszy od bieżącego do ostatniego.
 for (i = miesiac; i <= 11 ; i++) {
     suma+=DniWMiesiacu[i];
 }

 // Odjęcie liczby dni, które już w bieżącym miesiącu upłynęły.
 suma -= dzien;

 // Sprawdzenie czy bieżący rok jest przestępny i czy luty już upłynął.
 // Jeżeli tak, to do obliczonej sumy dodawany jest 1 dzień.
 if (((rok % 400) == 0) || ((rok % 4) == 0) && (rok % 100) <> 0) {
     if (miesiac < 2) {
         suma += 1;
     }
 }
 
 // Wyświetlenie komunikatu w zmiennej IleDni
 IleDniWynik="Do końca roku pozostało "+suma+" dni";
 
}


Szczególne wyjaśnienie należy się chyba w przypadku obliczania roku przestępnego. Rokiem przestępnym jest rok, którego liczba dzieli się bez reszty przez 4. Jeżeli jednak dzieli się bez reszty przez 100 to nie jest rokiem przestępnym, z wyjątkiem, gdy dzieli się bez reszty przez 400. Ostatnio takim rokiem podlegającym wszystkim regułom był rok 2000.

Mam nadzieję, że nigdzie nie popełniłem błędu.

Piotr - Wto 26 Kwi, 2005 19:56

Nie popełniłeś błędu...
... zawsze mówiłem że jesteś WIELKI :D

A teraz pytanie - gdzie można ustawić datę do odliczania (inną niż końcówka roku 2005 - np. 12.09.2006) ?

Pozdrawiam - Piotr :-D=

neo92 - Sro 09 Maj, 2007 19:55

Ponawiam pytanie.
roland - Nie 13 Maj, 2007 07:49

Ten skrypt oblicza zawsze do końca obecnego roku.

Ale do obliczania ilości dni pomiedzy dowolnymi datami służy skrypt, który już od dawna jest na forum:
http://swish.wodip.opole....topic.php?t=421

attim - Wto 07 Sie, 2007 12:16

roland napisał/a:
Jeden z postów dotyczących obliczania różnicy dni pomiędzy dwiema datami, zainspirował mnie do napisania skryptu umożliwiającego wyświetlenie dni, jakie pozostały do końca roku.


no dobrze, a jak zrobić odliczanie od konkretnej, podanej prze ze mnie daty
np. swieto trzeci maja - zostało "24" dni


Powered by phpBB modified by Przemo © 2003 phpBB Group