|
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
A teraz pytanie - gdzie można ustawić datę do odliczania (inną niż końcówka roku 2005 - np. 12.09.2006) ?
Pozdrawiam - Piotr
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
|
|