[Resolved] Leap year

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
mariosal
Honorary Member
Δημοσιεύσεις: 1473
Εγγραφή: 09 Νοέμ 2007 23:55

[Resolved] Leap year

Δημοσίευση από mariosal » 09 Ιουν 2009 22:03

Γεια σας,

Έχω φτιάξει ένα script το οποίο μετράει πόσες μέρες έχει ζήσει κάποιος. Όλα καλά εκτός του ότι πρέπει να ελέγχω εάν υπάρχουν δίσεχτα έτη μέχρι το σημερινό χρόνο. Έγραψα το παρακάτω αλλά δεν δουλεύει. Το παρακάτω βλέπει εάν υπάρχει δίσεκτο έτος και προσθέτει μία μονάδα στη μεταβλητή $day.

Κώδικας: Επιλογή όλων

$year = $_GET['year'];
$day = $_GET['day'];
while &#40;$year <= date&#40;'Y'&#41;&#41; &#123;
	if &#40;$year == date&#40;'L'&#41;&#41;
		$day += 1;
	$year += 1;
&#125;
$days = &#40;date&#40;'Y'&#41; - $_GET&#91;'year'&#93;&#41; * 365 + &#40;date&#40;'n'&#41; - $_GET&#91;'month'&#93;&#41; * 30 + &#40;date&#40;'j'&#41; - $day&#41;;
Βλέπετε κάποιο λάθος; Μπορείτε να μου πείτε κάποιον άλλο τρόπο για να κάνω αυτό που θέλω εάν δεν βρείτε κάποιο λάθος;
Τελευταία επεξεργασία από το μέλος mariosal την 10 Ιουν 2009 00:10, έχει επεξεργασθεί 3 φορές συνολικά.

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

[Resolved] Leap year

Δημοσίευση από Rapid-eraser » 09 Ιουν 2009 22:24

O poio asfalis tropos eivai va ipologiseis tnv diafora se seconds anamesa stis dio imeromivies
kai stnv sivexeia va kaveis avagogi twv seconds se imeres.

Osov afora tov kodika pou exeis grapsei exei la8os stnv logiki tou basika kai oxi sto pos eivai gramevo.
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

mariosal
Honorary Member
Δημοσιεύσεις: 1473
Εγγραφή: 09 Νοέμ 2007 23:55

[Resolved] Leap year

Δημοσίευση από mariosal » 09 Ιουν 2009 22:36

Βρήκα αυτό και φαίνεται ότι δουλεύει.

Κώδικας: Επιλογή όλων

while &#40;$year <= date&#40;'Y'&#41;&#41; &#123;
	if &#40;$year % 100&#41;
		if &#40;$year % 400&#41;
			$_GET&#91;'day'&#93; -= 1;
	elseif &#40;$year % 4&#41;
		$_GET&#91;'day'&#93; -= 1;
	$year += 1;
&#125;
$days = &#40;date&#40;'Y'&#41; - $_GET&#91;'year'&#93;&#41; * 365 + &#40;date&#40;'n'&#41; - $_GET&#91;'month'&#93;&#41; * 30 + date&#40;'j'&#41; - $_GET&#91;'day'&#93;;
Δοκίμασα να αντικαταστήσω το $year με το $_GET['year'] αλλά αργούσε πολύ να φορτώσει

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1952
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

[Resolved] Leap year

Δημοσίευση από vassilism » 09 Ιουν 2009 22:38

Γιατί δεν χρησιμοποιείς timestamp? Άλωστε αυτός είναι ένας απο τους λόγους που υπάρχει.

mariosal
Honorary Member
Δημοσιεύσεις: 1473
Εγγραφή: 09 Νοέμ 2007 23:55

[Resolved] Leap year

Δημοσίευση από mariosal » 09 Ιουν 2009 22:40

Τι ακριβώς είναι το timestamp; Με ένα πρόχειρο google search δεν βρήκα τίποτα εκτός από την time().

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1952
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

[Resolved] Leap year

Δημοσίευση από vassilism » 09 Ιουν 2009 22:44

Εδώ δεν κοίταξες?

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

[Resolved] Leap year

Δημοσίευση από fafos » 09 Ιουν 2009 23:01

Patridaaaaa!!! :lol:

ego pou eimai dekaetia tou 50 pos tha me metrhsei to timestamp? :lol:

einai mia aplh function me to mktime:

Κώδικας: Επιλογή όλων

<?

function hmeres&#40;$day, $month, $year&#41; &#123;
return floor&#40;&#40;mktime&#40;0, 0, 0&#41; - mktime&#40;0, 0, 0, $month, $day, $year&#41;&#41; / 86400&#41;;
&#125;

echo hmeres&#40;19, 3, 1974&#41;.' hmeres';

?>
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

mariosal
Honorary Member
Δημοσιεύσεις: 1473
Εγγραφή: 09 Νοέμ 2007 23:55

[Resolved] Leap year

Δημοσίευση από mariosal » 09 Ιουν 2009 23:21

fafos το script σου βγάζει μία μέρα παραπάνω απ' ότι θα 'πρεπε. Το τσέκαρα μήπως το δικό μου script κάνει το λάθος αλλά όχι.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

[Resolved] Leap year

Δημοσίευση από fafos » 09 Ιουν 2009 23:28

MarioSal έγραψε:fafos το script σου βγάζει μία μέρα παραπάνω απ' ότι θα 'πρεπε. Το τσέκαρα μήπως το δικό μου script κάνει το λάθος αλλά όχι.
ligoterh mporei... perissoterh apokleietai...
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

mariosal
Honorary Member
Δημοσιεύσεις: 1473
Εγγραφή: 09 Νοέμ 2007 23:55

[Resolved] Leap year

Δημοσίευση από mariosal » 09 Ιουν 2009 23:36

Κι όμως. Στο localhost τρέχει το δικό σου. Στο Safari το δικό μου σε server και το άλλο είναι το πρόγραμμα γραμμένο σε Pascal το οποίο δεν ψάχνει για leap years. Οπότε 2003 + 2(2004, 2008) μας κάνουν 2290 ημέρες και όχι 2291
Συνημμένα
gr.PNG

mariosal
Honorary Member
Δημοσιεύσεις: 1473
Εγγραφή: 09 Νοέμ 2007 23:55

[Resolved] Leap year

Δημοσίευση από mariosal » 09 Ιουν 2009 23:48

Τέλος πάντων αφού δουλεύει σωστά αυτό που έχω πάει solved

Τελικός κώδικας

Κώδικας: Επιλογή όλων

$year = $_GET&#91;'year'&#93;;
while &#40;$year <= date&#40;'Y'&#41;&#41; &#123;
	if &#40;$year % 4 == 0 && $year % 100 != 0 || $year % 400 == 0&#41;
		$_GET&#91;'day'&#93; -= 1;
	$year += 1;
&#125;
$days = &#40;date&#40;'Y'&#41; - $_GET&#91;'year'&#93;&#41; * 365 + &#40;date&#40;'n'&#41; - $_GET&#91;'month'&#93;&#41; * 30 + date&#40;'j'&#41; - $_GET&#91;'day'&#93;;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

[Resolved] Leap year

Δημοσίευση από fafos » 09 Ιουν 2009 23:49

2292 kanoun alla den ypologizei thn shmerinh hmera giati den exei teleiosei akoma....

http://www.mathcats.com/explore/agecalculator.html
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

mariosal
Honorary Member
Δημοσιεύσεις: 1473
Εγγραφή: 09 Νοέμ 2007 23:55

[Resolved] Leap year

Δημοσίευση από mariosal » 09 Ιουν 2009 23:53

Χμμ τι λάθος κάνω τότε;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

[Resolved] Leap year

Δημοσίευση από fafos » 09 Ιουν 2009 23:54

MarioSal έγραψε:Τέλος πάντων αφού δουλεύει σωστά αυτό που έχω πάει solved

Τελικός κώδικας

Κώδικας: Επιλογή όλων

$year = $_GET&#91;'year'&#93;;
while &#40;$year <= date&#40;'Y'&#41;&#41; &#123;
	if &#40;$year % 4 == 0 && $year % 100 != 0 || $year % 400 == 0&#41;
		$_GET&#91;'day'&#93; -= 1;
	$year += 1;
&#125;
$days = &#40;date&#40;'Y'&#41; - $_GET&#91;'year'&#93;&#41; * 365 + &#40;date&#40;'n'&#41; - $_GET&#91;'month'&#93;&#41; * 30 + date&#40;'j'&#41; - $_GET&#91;'day'&#93;;
auto einai lathos... troei mia hmera kai an ypologiseis kai thn shmerinh pou trexei troei 2 hmeres..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

mariosal
Honorary Member
Δημοσιεύσεις: 1473
Εγγραφή: 09 Νοέμ 2007 23:55

[Resolved] Leap year

Δημοσίευση από mariosal » 09 Ιουν 2009 23:55

Οπότε θα δουλέψω με το δικό σου

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες