|
SWiSH Forum
Forum użytkowników programów SWiSH
|
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
A teraz pytanie - gdzie można ustawić datę do odliczania (inną niż końcówka roku 2005 - np. 12.09.2006) ?
Pozdrawiam - Piotr |
|
|
|
|
neo92
Początkujący
Wiek: 32 Dołączył: 09 Maj 2007 Posty: 8 Skąd: Przemyśl
|
|
|
|
|
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 |
|
|
|
|
|
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
|
|
|
|
|
|
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.25 sekundy. Zapytań do SQL: 15 |
|
|