Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Python

Funkcja obliczająca ile dni pozostało do sylwestra

Python

  • Zamknięty Temat jest zamknięty
12 odpowiedzi w tym temacie

#1 kur3k

    Założyciel forum ;)

  • Przyjaciel

Reputacja: 29
Życzliwy

  • Postów:134
  • Imię:Konrad
  • Lokalizacja:Szczecin
Offline

Napisano 01.04.2010 07:52

Funkcja obliczająca ile dni pozostało do sylwestra, uwzględnia rok przystępny.
# -*- coding: utf-8 -*-

def oblicz(rok, miesiac, dzien):
"""\nFunkcja wylicza ile dni pozostalo do sylwestra.
Przyklad uzycia - oblicz(rok,miesiac,dzien)
oblicz(1990,4,2)
Funkcja uwzglednia rok przystepny, a takze sprawdza poprawnosc wprowadzonych danych.
"""

trzyzero = []
trzyjeden = []

if (rok % 4 == 0) and (rok % 100 != 1) or (rok % 400 == 0):
luty = 29
else:
luty = 28

if (miesiac > 12) or (miesiac < 1):
return "Blad!"
elif (dzien > 31) or (dzien < 1) or (dzien > luty):
return "Blad!"
elif (rok > 2011):
return "Blad! Maksymalny rok, 2011!"

for i in [2,4,6,9,11]:
if i == miesiac:
trzyzero.append(i)
elif i > miesiac:
trzyzero.append(i)
if 2 in trzyzero:
zlicz = ((len(trzyzero)-1)*30)+luty
else:
zlicz = len(trzyzero)*30

for i in [1,3,5,7,8,10,12]:
if i == miesiac:
trzyjeden.append(i)
elif i > miesiac:
trzyjeden.append(i)
zlicz_2 = len(trzyjeden)*31

return zlicz+zlicz_2-dzien

Funkcja obliczająca ile pozostało do sylwestra 2006 od roku bazowego.
# -*- coding: utf-8 -*-

# 366 - rok przystepny
# 365 - rok nieprzystepny

def oblicz(rok, miesiac, dzien):
"""Funkcja oblicza ile pozostalo do sylwestra 2006 od roku bazowego.
Przyklad uzycia
oblicz(rok,miesiac,dzien)
oblicz(1990,10,12)"""

# zamiana wartosc podanej ( dzien ) na liczbe calkowita
dzien = int(dzien)

# sprawdzanie czy rok jest wiekszy od 2006
if (rok >= 2006):
return "Funkcja oblicza do 2006 roku!"

# puste lity, w ktorych będę zapisywane miesiace a takze suma dni roku
zero = []
jeden = []
suma = []

# sprawdzam czy podany rok jest przystepny
if (rok % 4 == 0) and (rok % 100 != 1) or (rok % 400 == 0):
luty = 29
else:
luty = 28

# sprawdzanie wyjatkow
if (miesiac > 12) or (miesiac < 1):
return "Blad!"
elif (dzien > 31) or (dzien < 1) or (dzien > luty):
return "Blad!"


# obliczam dni do sylwestra dla roku bazowego ( miesiace 30-dniowe )
for i in [2,4,6,9,11]:
if i == miesiac:
zero.append(i)
elif i > miesiac:
zero.append(i)

# sprawdzanie czy w liscie 'zero' jest luty
if 2 in zero:
zlicz = ((len(zero)-1)*30)+luty
else:
zlicz = len(zero)*30

# obliczam dni do sylwestra dla roku bazowego ( miesiace 31-dniowe )
for i in [1,3,5,7,8,10,12]:
if i == miesiac:
jeden.append(i)
elif i > miesiac:
jeden.append(i)

zlicz_2 = len(jeden)*31

# czyszczenie list z wartosc
del zero[:]
del jeden[:]

# zapisanie wyniku do listy 'suma'
wynik = zlicz+zlicz_2-dzien
suma.append(wynik)

# w petli obliczam dni az do roku 2006, bez rok bazowego
while rok:
# zwiekszam rok o 1
rok += 1

# sprawdzam czy rok = 2006, jak nie - petla idzie dalej
if rok == 2006:
return sum(suma)
break
elif rok >= 2006:
return "Blad!"

# sprawdzam czy podany rok jest przystepny
if (rok % 4 == 0) and (rok % 100 != 1) or (rok % 400 == 0):
luty = 29
else:
luty = 28

# obliczam dni w miesiacach 30-dniowych
for i in [2,4,6,9,11]:
zero.append(i)

zlicz = ((len(zero)-1)*30)+luty

# obliczam dni w miesiach 31-dniowych
for i in [1,3,5,7,8,10,12]:
jeden.append(i)

zlicz_2 = len(jeden)*31

# zapisanie wyniku do listy 'suma'
wynik = zlicz+zlicz_2
suma.append(wynik)

# czyszczenie list z zwartosci
del zero[:]
del jeden[:]

continue

Użytkownik kur3k edytował ten post 04.04.2010 22:30

  • +
  • -
  • 0

#2 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 01.04.2010 12:01

co jak podam oblicz(2010, 2, 30) ? :)
  • +
  • -
  • 0

#3 kur3k

    Założyciel forum ;)

  • Autor tematu
  • Przyjaciel

Reputacja: 29
Życzliwy

  • Postów:134
  • Imię:Konrad
  • Lokalizacja:Szczecin
Offline

Napisano 01.04.2010 14:58

Obliczy, podając rok np 2010 liczy do 2011.
  • +
  • -
  • 0

#4 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 01.04.2010 16:15

Tak, ale jak podam datę 30 luty.
  • +
  • -
  • 0

#5 kur3k

    Założyciel forum ;)

  • Autor tematu
  • Przyjaciel

Reputacja: 29
Życzliwy

  • Postów:134
  • Imię:Konrad
  • Lokalizacja:Szczecin
Offline

Napisano 04.04.2010 20:31

Poprawione obliczanie, i dodanie wyjątku luty Pavek ;)

Użytkownik kur3k edytował ten post 04.04.2010 22:34

  • +
  • -
  • 0

#6 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 04.04.2010 22:27

jak sie uda to sprobuje w php :D
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#7 kur3k

    Założyciel forum ;)

  • Autor tematu
  • Przyjaciel

Reputacja: 29
Życzliwy

  • Postów:134
  • Imię:Konrad
  • Lokalizacja:Szczecin
Offline

Napisano 04.04.2010 22:32

Dasz radę, masz algorytm roku przystępnego
 function czyPrzestępny(rok: integer): boolean;
begin
if (rok mod 4 = 0) and (rok mod 100 <> 0) or (rok mod 400 = 0) then
czyPrzestępny=true;
else
czyPrzestępny=false;
end;

Użytkownik kur3k edytował ten post 04.04.2010 22:32

  • +
  • -
  • 0

#8 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 04.04.2010 22:41

ty wiez ze ta funkcja wyglada jak funkcja z Pascala :?:
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#9 kur3k

    Założyciel forum ;)

  • Autor tematu
  • Przyjaciel

Reputacja: 29
Życzliwy

  • Postów:134
  • Imię:Konrad
  • Lokalizacja:Szczecin
Offline

Napisano 04.04.2010 22:59

bo jest to pseudokod pod pascala pewnie? algorytm z wiki
  • +
  • -
  • 0

#10 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 04.04.2010 23:05

to nie wygląda na php właśnie ;)
raczej coś takiego:
 function czyPrzestępny(rok)
{
if ($rok % 4 == 0) && ($rok % 100 != 0) || ($rok % 400 == 0)
return true;
else
return false;
}


Ale to nie na temat ;)
Jak coś to załóż w nowym temacie, możemy to przedyskutować :D
  • +
  • -
  • 0

#11 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 04.04.2010 23:07

jak mi sie uda w php to zrobic to zaloze temat :D
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#12 kur3k

    Założyciel forum ;)

  • Autor tematu
  • Przyjaciel

Reputacja: 29
Życzliwy

  • Postów:134
  • Imię:Konrad
  • Lokalizacja:Szczecin
Offline

Napisano 04.04.2010 23:25

Pisaliśmy o pascalu, nie PHP? :)
  • +
  • -
  • 0

#13 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 04.04.2010 23:38

w pascalu tez moge napisac :D
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D





Również z jednym lub większą ilością słów kluczowych: Python

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych