SWiSH Forum Strona Główna SWiSH Forum
Forum użytkowników programów SWiSH

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload

Poprzedni temat «» Następny temat
Zliczanie dni
Autor Wiadomość
roland 
Site Admin
Roland Zimek



Wersja SWiSH: Max4
Pomógł: 31 razy
Wiek: 58
Dołączył: 21 Sty 2005
Posty: 424
Skąd: Opole
Wysłany: Pon 25 Kwi, 2005 06:06   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 
Ekspert


Pomógł: 19 razy
Dołączył: 28 Sty 2005
Posty: 252
Wysłany: Wto 26 Kwi, 2005 18: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 
Początkujący



Wiek: 32
Dołączył: 09 Maj 2007
Posty: 8
Skąd: Przemyśl
Wysłany: Sro 09 Maj, 2007 18:55   
   Moje WWW: www.neostrefa.yoyo.pl


Ponawiam pytanie.
_________________
Gość czy byłeś już w NEOSTREFIE :?:
 
 
     
roland 
Site Admin
Roland Zimek



Wersja SWiSH: Max4
Pomógł: 31 razy
Wiek: 58
Dołączył: 21 Sty 2005
Posty: 424
Skąd: Opole
Wysłany: Nie 13 Maj, 2007 06: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 
Praktyk


Dołączył: 07 Sie 2007
Posty: 24
Skąd: Warszawa
Wysłany: Wto 07 Sie, 2007 11: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
 
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
         
Strona wygenerowana w 0.11 sekundy. Zapytań do SQL: 14