Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] zmienna zalezna od roku, dzialanie na date
eMatys
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 15.01.2006
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Wiedząć, że
  1. <?php
  2. date("L");
  3. ?>
wyświetala nam wartość logiczną 0 lub 1 w zależności od tego czy rok jest przestępny czy nie. Prosiłbym o pomoc w napisaniu funkcji, która wyświetlałaby dwie rózne zmienne w zależności od tego jaki jest rok. Tj:

Jeśli rok jest prestępny wartość logiczna jest równa 1 dlatego funkcja
  1. <?php
  2. $przestępny = 'przestępny';
  3. ?>

wysyła tą wartość do zmiennej
  1. <?php
  2. $wynik = '____';
  3. ?>


Jeśli rok jest nieprestępny wartość logiczna jest równa 0 dlatego funkcja
  1. <?php
  2. $nieprzestępny = 'nieprzestępny';
  3. ?>

wysyła tą wartość do zmiennej
  1. <?php
  2. $wynik = '____';
  3. ?>

Tak aby zmienna
  1. <?php
  2. echo $wynik ';
  3. ?>
Zwrócił nam informację czy rok jest przestępny czy nie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
tiraeth
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


A czy słyszałeś o instrukcjach warunkowych??

  1. <?php
  2. if ( date("L") == 1 )
  3. {
  4.  $wynik = 'Rok przestępny';
  5. }
  6. else
  7. {
  8.  $wynik = 'Rok nieprzestępny';
  9. }
  10.  
  11. echo $wynik;
  12. ?>
Go to the top of the page
+Quote Post
eMatys
post
Post #3





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 15.01.2006
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Słyszeć słyszałem ale jak narazie raczkuję w tym. Dziękuję za pomoc, Pozdrawiam.
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Od razu powiem. Pisze z NetCaffe i padniety po kilkunastu godzinach, więc jak bedzie błąd, to nie moja wina:/
  1. <?php
  2.  
  3. function getYear() {
  4. $year=date("L");
  5.  switch ($year){
  6.  case "1"; return "Przestępny";break;
  7.  case "0"; return "Nieprzestępny";break;
  8. default: break;
  9.  }
  10. }
  11.  
  12. print. 'Ten rok jest'.getYear();
  13.  
  14. ?>


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
eMatys
post
Post #5





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 15.01.2006
Skąd: Poznań

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. $dzien_roku = date("z");
  4. $koniec = $jaki_rok - $dzien_roku;
  5. if ( date("L") == 1 )
  6. {
  7.  $jaki_rok = 366;
  8. }
  9. else
  10. {
  11.  $jaki_rok = 365;
  12. }
  13. print "$koniec";
  14. ?>

I mamy błąd... Wynik: - 136

Przy okazji również porusze może inny problem:
  1. <?php
  2.  
  3.  $tygodnia[0] = "niedziela";
  4.  $tygodnia[1] = "poniedzialek";
  5.  $tygodnia[2] = "wtorek";
  6.  $tygodnia[3] = "środa";
  7.  $tygodnia[4] = "czwartek";
  8.  $tygodnia[5] = "piątek";
  9.  $tygodnia[6] = "sobota";
  10. $dzien_tygodnia = $tygodnia[date("w",time())];
  11.  
  12. ?>

Ja zapisać zmienną
  1. <?php
  2. $tygodnia[date("w",time())];
  3. ?>
w zwyczajnej prostej zmiennej lub jak aby można było ją wykorzystać w innym dokumencie w takiej postaci
  1. <?php
  2. echo $dzien_tygodnia
  3. ?>


Ten post edytował eMatys 17.05.2006, 17:26:32
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #6





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Nia mam pod ręką żadnego serwera, więc ciężko mi powiedzieć, dlaczego masz taki wynik, ale powiedz co wogóle chcesz siągnąć, bo nie bardzo rozumiem. Użyłeś innego argumentu dla 'date()' niz pisałeś wcześniej.

2. No już masz zapisaną w
  1. <?php
  2.  
  3. $dzien_tygodnia = $tygodnia[date("w",time())];
  4.  
  5. ?>


Ten post edytował Cysiaczek 17.05.2006, 17:29:48


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
eMatys
post
Post #7





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 15.01.2006
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Chce wyświetlic na stronie ze dany rok jest przestępny a zaraz dalej podać ile zostało do końca roku.
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #8





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Musisz mieć dwie wartości.
wartosc1. ilośc dni w roku (to już masz)
wartosc2. aktualny dzień roku (musisz policzyć)

wartosc1-wartosc2=ilośc dni do końca roku

w twoim kodzie jest błąd i to POWAŻNY:

Zauważ, że najpierw odwołujesz się do zmiennej $jaki_rok
a dopiero potem deklarujesz ta zmienną. Najpierw musisz ją zadeklarować. Wstaw zatem instrucje warunkową na samej górze skryptu.

  1. <?php
  2.  
  3. if ( date("L") == 1 )
  4. {
  5.  $jaki_rok = 366;
  6. }
  7. else
  8. {
  9.  $jaki_rok = 365;
  10. }
  11.  
  12. $dzien_roku = date("z");
  13. $koniec = $jaki_rok - $dzien_roku;
  14.  
  15. print "$koniec";
  16.  
  17.  
  18. ?>


Ten post edytował Cysiaczek 17.05.2006, 17:37:23


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
eMatys
post
Post #9





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 15.01.2006
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(Cysiaczek @ 2006-05-17 16:35:41)
Musisz mieć dwie wartości.
wartosc1. ilośc dni w roku (to już masz)
wartosc2. aktualny dzień roku (musisz policzyć)

wartosc1-wartosc2=ilośc dni do końca roku

w twoim kodzie jest błąd i to POWAŻNY:

Zauważ, że najpierw odwołujesz się do zmiennej $jaki_rok
a dopiero potem deklarujesz ta zmienną. Najpierw musisz ją zadeklarować. Wstaw zatem instrucje warunkową na samej górze skryptu.

  1. <?php
  2.  
  3. if ( date("L") == 1 )
  4. {
  5.  $jaki_rok = 366;
  6. }
  7. else
  8. {
  9.  $jaki_rok = 365;
  10. }
  11.  
  12. $dzien_roku = date("z");
  13. $koniec = $jaki_rok - $dzien_roku;
  14.  
  15. print "$koniec";
  16.  
  17.  
  18. ?>

a jak policzyć wartosc2??
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #10





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




O.o :/
Trochę ciężko :/
przydałby się kalendarz. Nie policzę Ci teraz, bo nie mam głowy do funkcji. poszukaj na google, albo w jakichś skryptach i stamtąd zerżnij. Przyznam się szczerze, że nigdy tego nie liczyłem, bo nie potrzebowałem :/
Po prostu poszukaj algorytmu. Nawet niekoniecznie musi być z php Zajrzyj na strony JavaScript. jak na coś wpadnę, to napiszę.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
a jak policzyć wartosc2??
blink.gif
Ten kod co podales ty to napisales? Przeciez masz:
  1. <?php
  2. $dzien_roku = date("z");
  3. ?>
i to jest Twoja wartosc2...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Cysiaczek
post
Post #12





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Nie. ja tylko dawałem ogólne wskazówki pomocne rozwiązaniu tego problemu. kod nie jest mój, tylko kolegi smile.gif
Po prostu nie uzyłem QUOTE

Ten post edytował Cysiaczek 17.05.2006, 17:52:30


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
tiraeth
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


date" title="Zobacz w manualu php" target="_manual - przeczytaj...

  1. <?php
  2. # Ilość dni w roku - taka skrótowa forma instrukcji warunkowej
  3. $yearDays = ( date('L') == 1 ) ? 366 : 365;
  4. # Aktualny dzień roku
  5. $dayOfYear = date("z");
  6.  
  7. # No i liczymy...
  8. $dayToNextYear = $yearDays - $dayOfYear;
  9. ?>


Cysiaczek: masz chyba problem z logicznym myśleniem smile.gif Przecież wartosc2 to $dzien_roku...a tą wartość obliczasz wywołując funkcję date() z argumentem "z" tongue.gif
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@tiraeth to nie klopot z logicznym mysleniem, a poprostu nie znajomosc manuala. ot wszystko. nie ma co jechac.

@Cysiaczek a wczesniejsze pytanie nie kierowalem do ciebie a do eMatysa smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Cysiaczek
post
Post #15





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Masz racje O.o jestem, zmeczony, co pisałem na poczatku, a poza tym jakbyś przez kilkanaście godzin oglądał UML, to być też zapomniał jak się nazywasz.
Na marginesie, to nigdy nie wywoływałem tej funkcji z tym parametrem, bo nie miałem potrzeby. Ja tu tylko sobie piszę, bo się nudzę, a nie chce mi się iść spać.
Fakt jednak faktem. Powinienem wiedzieć.:///


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
eMatys
post
Post #16





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 15.01.2006
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(tiraeth @ 2006-05-17 17:01:14)
date" title="Zobacz w manualu php" target="_manual - przeczytaj...

  1. <?php
  2. # Ilość dni w roku - taka skrótowa forma instrukcji warunkowej
  3. $yearDays = ( date('L') == 1 ) ? 366 : 365;
  4. # Aktualny dzień roku
  5. $dayOfYear = date("z");
  6.  
  7. # No i liczymy...
  8. $dayToNextYear = $yearDays - $dayOfYear;
  9. ?>


Cysiaczek: masz chyba problem z logicznym myśleniem smile.gif Przecież wartosc2 to $dzien_roku...a tą wartość obliczasz wywołując funkcję date() z argumentem "z" tongue.gif

Dziękuję serdecznie za pomoc! LEcz jednak pozostaje jeden malutki szczegół. Przed wynikiem pojaiwa sie zna "-" (minus) jak moge się go pozbyc??

Chciałbym też przypomnieć o mojej drugiej prośbie:
"Przy okazji również porusze może inny problem:
  1. <?php
  2.  
  3.  $tygodnia[0] = "niedziela";
  4.  $tygodnia[1] = "poniedzialek";
  5.  $tygodnia[2] = "wtorek";
  6.  $tygodnia[3] = "środa";
  7.  $tygodnia[4] = "czwartek";
  8.  $tygodnia[5] = "piątek";
  9.  $tygodnia[6] = "sobota";
  10. $dzien_tygodnia = $tygodnia[date("w",time())];
  11.  
  12. ?>

Ja zapisać zmienną
  1. <?php
  2. $tygodnia[date("w",time())];
  3. ?>
w zwyczajnej prostej zmiennej lub jak aby można było ją wykorzystać w innym dokumencie w takiej postaci
  1. <?php
  2. echo $dzien_tygodnia
  3. ?>
"

Ten post edytował eMatys 18.05.2006, 11:24:46
Go to the top of the page
+Quote Post
E-d
post
Post #17





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 9.04.2005

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $dayToNextYear = str_replace("-","",($yearDays - $dayOfYear));
  3. ?>


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #18





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat(E-d @ 2006-05-18 12:40:56)
  1. <?php
  2. $dayToNextYear = str_replace("-","",($yearDays - $dayOfYear));
  3. ?>

smile.gif
@E-d a nie lepiej tak:
  1. <?php
  2. $dayToNextYear = abs($yearDays - $dayOfYear);
  3. ?>

a na powaznie:
poprawnie zapisanie tego: $yearDays - $dayOfYear nie powinno dac minusa, gdyż liczba dni w roku jest >= od aktualnego dnia roku smile.gif

@eMatys pokaz dokladnie jeszcze raz kod jakiego uzywasz do tego. wlacznie z wypisanie wyniku na ekran


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
eMatys
post
Post #19





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 15.01.2006
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Przepraszam popełniłem błąd - nie wysłałem pliku na serwer.

Jeszcze raz dziękuję za poświęcony czas i pomoc. Pozdrawiam

Ten post edytował eMatys 18.05.2006, 12:08:06
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 04:06