Webmail
Director web
::
Tutoriale
::
Code archive
::
Upload
::
Forum
::
Acasã
|
Ajutor
|
Cãutare
|
Autentificare
|
Înregistrare
» Utilizator
» Parteneri
» Linux Server
» WorldIT.info
» Web hosting
» Gazduire web
» IPFind
» Invatam.net
» PC Troubleshooting
» RegEx
» sigur.info
» Computericã
» De citit
» LAMP in CentOS
» LAMP in Ubuntu Server
» FAMP/LAMP in FreeBSD
» Formular de contact
» Optimizare Apache
» Optimizare MySQL
» Recomandari
» Hazardous Gaming
» What I Know
» PHP Funk
» Taskuri securitate
» Anti spam
» O parola eficienta
» Trojan, backdoor, spyware
» Phishing si pharming
» Securizare windows
» Cum functioneaza un virus?
» Certificate SSL
» Gumblar
» Un firewall eficient
» Ingineria sociala
» Statistici
65486
de mesaje.
7732
de topicuri.
1231
de utilizatori.
Kopotosa
e ultimul utilizator inregistrat.
[Detalii]
SkullBox Forum
|
Development
|
Concursuri de programare
| Topic:
[php] Concurs 2 : date calendaristice
|
|
Pagini: [
1
]
Print
[php] Concurs 2 : date calendaristice [1170 afisari]
emi
Mesaje:
[php] Concurs 2 : date calendaristice
Concursul 1, a lamurit (sper) ce inseamna formular, si cum se pot prelua variabilele introduse in el.
Acum sa trecem la cautare functii pe site-ul PHP:
http://www.php.net/time
Sa se creeze un formular in care se cere anul, luna, ziua, ora, si minutul zilei de nastere.
Se cere sa se afiseze virsta.
Concursul dureaza pina pe 15 iulie, postati solutiile, dar sursele mi le timiteti sa zicem pe 14.
Daca e prea greu pentru incepatori, se cere doar anul in formular.
Logged
02-07-2009, 12:47
Twitt
::
Smash
Mesaje: 1173
Offline
Re: [php] Concurs 2 : date calendaristice
Se pare ca sunt primul participant :
http://depozit.imagesl.info/concursuri%20php%20skullbox/concurs_2_time.php
Logged
03-07-2009, 13:59
Twitt
::
emi
Mesaje:
Re: [php] Concurs 2 : date calendaristice
Solutia mea:
http://emi.skullbox.info/c/phpc2.php
Logged
05-07-2009, 09:28
Twitt
::
Claudiu
Mesaje: 1543
Offline
Re: [php] Concurs 2 : date calendaristice
Pentru inceput...
Revin cu o alta solutie pana pe 15
Asta e ce am reusit sa fac azi
Multumesc emi pentru crash-course-ul in php!
Logged
06-07-2009, 20:16
Twitt
::
emi
Mesaje:
Re: [php] Concurs 2 : date calendaristice
Mai sunt citeva zile pina la expirarea concursului.
Vreti sugestii ? :
In lipsa unor functii deja facute, cum scadeti lucruri care nu sunt in baza 10 ?
Secundele se numara de la 0 pina la 59, si apoi se numara un minut, dar asta e la adunare asa ?
Daca vrei sa scazi din 20 de minute si 0 secunde, 40 de secunde ?
Pai din 0 secunde nu ai cum, scrii 19 minute si 20 de secunde.
Logged
10-07-2009, 20:27
Twitt
::
emi
Mesaje:
Re: [php] Concurs 2 : date calendaristice
Sursa Smash:
Code:
<?
$mesaj_eroare = "";
$text_varsta = "";
$Zile_Luna[01]="31";
$Zile_Luna[02]="28";
$Zile_Luna[03]="31";
$Zile_Luna[04]="30";
$Zile_Luna[05]="31";
$Zile_Luna[06]="30";
$Zile_Luna[07]="31";
$Zile_Luna[08]="31";
$Zile_Luna[09]="30";
$Zile_Luna[10]="31";
$Zile_Luna[11]="30";
$Zile_Luna[12]="31";
$anul = "";
$luna = "";
$ziua = "";
$ora = "";
$minutul = "";
if (isset($_POST['calculeaza'])) {
if ((isset($_POST['anul'])) && ($_POST['anul'] != "") && ($_POST['anul'] != "-1") ) {
$anul = $_POST['anul'];
} else {
$mesaj_eroare = $mesaj_eroare . "Nu ati completat campul an. <br>";
}
if ((isset($_POST['luna'])) && ($_POST['luna'] != "") && ($_POST['luna'] != "-1")) {
$luna = $_POST['luna'];
} else {
$mesaj_eroare = $mesaj_eroare . "Nu ati completat campul luna. <br>";
}
if ((isset($_POST['ziua'])) && ($_POST['ziua'] != "") && ($_POST['ziua'] != "-1")) {
$ziua = $_POST['ziua'];
} else {
$mesaj_eroare = $mesaj_eroare . "Nu ati completat campul ziua. <br>";
}
if ((isset($_POST['ora'])) && ($_POST['ora'] != "") && ($_POST['ora'] != "-1") ) {
$ora = $_POST['ora'];
} else {
$mesaj_eroare = $mesaj_eroare . "Nu ati completat campul ora. <br>";
}
if ((isset($_POST['minutul'])) && ($_POST['minutul'] != "") && ($_POST['minutul'] != "-1")) {
$minutul = $_POST['minutul'];
} else {
$mesaj_eroare = $mesaj_eroare . "Nu ati completat campul minutul. <br>";
}
if ($mesaj_eroare == "") {
$data_curenta_unix = time();
$data_nastere_unix = mktime ($ora , $minutul ,0, $luna, $ziua, $anul);
if ($data_curenta_unix > $data_nastere_unix) {
$data_diferenta_unix = $data_curenta_unix - $data_nastere_unix - 7200 ;
$ani = intval(strftime( "%Y" ,$data_diferenta_unix )) - 1970;
$luni = strftime("%m" ,$data_diferenta_unix) -1 ;
$zile = strftime("%d" ,$data_diferenta_unix) - 1;
$ore = strftime("%H" ,$data_diferenta_unix);
$minute = strftime("%M" ,$data_diferenta_unix);
$secunde = strftime("%S" ,$data_diferenta_unix);
if ($ani != 0) {
if ($ani == 1 ) {
$text_varsta = $text_varsta . "Un an ";
} else {
$text_varsta = $text_varsta . "$ani ani ";
}
}
if ($luni != 0) {
if ($luni == 1 ) {
$text_varsta = $text_varsta . "o luna ";
} else {
$text_varsta = $text_varsta . "$luni luni ";
}
}
if ($zile != 0) {
if ($zile == 1 ) {
$text_varsta = $text_varsta . "o zi ";
} else {
$text_varsta = $text_varsta . "$zile zile ";
}
}
if ($ore != 0) {
if ($ore == 1 ) {
$text_varsta = $text_varsta . "o ora ";
} else {
$text_varsta = $text_varsta . "$ore ore ";
}
}
if ($minute != 0) {
if ($minute == 1 ) {
$text_varsta = $text_varsta . "un minut ";
} else {
$text_varsta = $text_varsta . "$minute minute ";
}
}
if ($secunde != 0) {
if ($secunde == 1 ) {
$text_varsta = $text_varsta . "o secunde ";
} else {
$text_varsta = $text_varsta . "$secunde secunde ";
}
}
if (($anul % 4 == 0) && ($luna == "2")) {
$nr_zile = 29;
} else {
$nr_zile = $Zile_Luna[$luna];
}
} else {
$mesaj_eroare = "Data de nastere aleasa este mai mare decat data curenta.";
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>[php] Concurs 2 : date calendaristice</title>
<script language="javascript" type="text/javascript">
function AdaugaZilele () {
var Zile_Luna=new Array();
Zile_Luna[01]="31";
Zile_Luna[02]="28";
Zile_Luna[03]="31";
Zile_Luna[04]="30";
Zile_Luna[05]="31";
Zile_Luna[06]="30";
Zile_Luna[07]="31";
Zile_Luna[08]="31";
Zile_Luna[09]="30";
Zile_Luna[10]="31";
Zile_Luna[11]="30";
Zile_Luna[12]="31";
select_ziua = document.getElementById('ziua');
select_ziua.length = 0;
Opt_Nou = document.createElement('option');
Opt_Nou.text = "Ziua";
Opt_Nou.value = -1;
try {
select_ziua.add(Opt_Nou, null);
} catch(ex) {
select_ziua.add(Opt_Nou);
}
luna = document.getElementById("luna").options[document.getElementById("luna").selectedIndex].value;
anul = document.getElementById("anul").options[document.getElementById("anul").selectedIndex].text;
if ((anul % 4 == 0) && (luna == "2")) {
nr_zile = 29;
} else {
nr_zile = Zile_Luna[luna];
}
for (i=1; i<= nr_zile; i ) {
Opt_Nou = document.createElement('option');
if (i < 10) {
Opt_Nou.text = "0" i;
} else {
Opt_Nou.text = i;
}
Opt_Nou.value = i;
try {
select_ziua.add(Opt_Nou, null);
} catch(ex) {
select_ziua.add(Opt_Nou);
}
}
}
</script>
<style type="text/css">
<!--
#raspuns {
text-align: center;
height: 90px;
vertical-align: middle;
color: #FFF;
font-size: 24px;
font-weight: 800;
font-variant: normal;
text-transform: capitalize;
background-repeat: repeat-x;
padding-top: 60px;
margin: 0px;
}
#form1 {
text-align: center;
background-image: url(http://www.imagesl.info/imagine/Anonymous/Anonymous/gradient2.png);
background-repeat: repeat;
color: #FFF;
font-size: 18px;
font-weight: bold;
padding-top: 10px;
padding-bottom: 15px;
}
body {
margin: 0px;
padding: 0px;
background-image: url(http://www.skullbox.info/Themes/SkullBox/images/background.png);
background-color: #BBA;
background-position: center;
background-repeat: repeat-y;
}
.eroare {
font-size: 24px;
color: #FC0;
}
-->
</style>
</head>
<body>
<form id="form1" name="form1" method="post" action="/concursuri php skullbox/concurs_2_time.php">
Data si ora curenta pe server : <? print strftime("%d.%m.%Y %H:%M:%S" ,time()) ?> <br/><br/>
<label>Anul
<select name="anul" id="anul" onchange="AdaugaZilele()">
<option value="-1">Anul</option>
<?php
for ($i=1945; $i <= 2009; $i ) {
if ($anul == $i) {
print "<option selected value='$i'>$i</option>
";
} else {
print "<option value='$i'>$i</option>
";
}
}
?>
</select>
</label>
<label>Luna
<select name="luna" id="luna" onchange="AdaugaZilele()">
<option value="-1">Luna</option>
<option value="1" <? if ($luna == 1) { print " selected "; }?>>Ianuarie</option>
<option value="2" <? if ($luna == 2) { print " selected "; }?>>Februarie</option>
<option value="3" <? if ($luna == 3) { print " selected "; }?>>Martie</option>
<option value="4" <? if ($luna == 4) { print " selected "; }?>>Aprilie</option>
<option value="5" <? if ($luna == 5) { print " selected "; }?>>Mai</option>
<option value="6" <? if ($luna == 6) { print " selected "; }?>>Iunie</option>
<option value="7" <? if ($luna == 7) { print " selected "; }?>>Iulie</option>
<option value="8" <? if ($luna == 8) { print " selected "; }?>>August</option>
<option value="9" <? if ($luna == 9) { print " selected "; }?>>Septembrie</option>
<option value="10" <? if ($luna == 10) { print " selected "; }?>>Octombrie</option>
<option value="11" <? if ($luna == 11) { print " selected "; }?>>Noiembrie</option>
<option value="12" <? if ($luna == 12) { print " selected "; }?>>Decembrie</option>
</select>
</label>
<label>Ziua
<select name="ziua" id="ziua">
<option value="-1">Ziua</option>
<?
if (isset($nr_zile)) {
for ($i=0; $i <= $nr_zile; $i ) {
if ($i < 10) {
$i = "0$i";
}
if ($ziua == $i) {
print "<option selected value='$i'>$i</option>
";
} else {
print "<option value='$i'>$i</option>
";
}
}
}
?>
</select>
</label>
<label>Ora
<select name="ora" id="ora">
<option value="-1">ora</option>
<?php
for ($i=0; $i <= 23; $i ) {
if ($i < 10) {
$i = "0$i";
}
if ($ora == $i) {
print "<option selected value='$i'>$i</option>
";
} else {
print "<option value='$i'>$i</option>
";
}
}
?>
</select>
</label>
<label>Minutul
<select name="minutul" id="minutul">
<option value="-1">Minutul</option>
<?php
for ($i=0; $i <= 59; $i ) {
if ($i < 10) {
$i = "0$i";
}
if ($minutul == $i) {
print "<option selected value='$i'>$i</option>
";
} else {
print "<option value='$i'>$i</option>
";
}
}
?>
</select>
</label>
<label>
<input type="submit" name="calculeaza" id="calculeaza" value="Calculeaza varsta" />
</label>
</form>
<br />
<div id="raspuns">
<? if ($mesaj_eroare != "" ) print "<span class='eroare'>$mesaj_eroare</span>"; ?>
<? if ($text_varsta != "" ) print "$text_varsta"; ?>
</div>
</body>
</html>
Logged
15-07-2009, 01:45
Twitt
::
emi
Mesaje:
Re: [php] Concurs 2 : date calendaristice
Sursa Emi:
Code:
<html>
<head>
<title>PHP Concurs 2</title>
</head>
<body>
<p>Data nasterii:
<form action="phpc2.php" method="post">
<table>
<tr><td>An</td><td><input type="text" maxlength="4" size="4" name="an" value="<?php if(isset($_POST['an'])) echo $_POST['an'] ?>"></td>
<td>Luna</td><td><input type="text" maxlength="2" size="2" name="luna" value="<?php if(isset($_POST['luna'])) echo $_POST['luna'] ?>"></td>
<td>Zi</td><td><input type="text" maxlength="2" size="2" name="zi" value="<?php if(isset($_POST['zi'])) echo $_POST['zi'] ?>"></td></tr>
<tr><td>Ora</td><td><input type="text" maxlength="2" size="2" name="ora" value="<?php if(isset($_POST['ora'])) echo $_POST['ora'] ?>"></td>
<td>Minut</td><td><input type="text" maxlength="2" size="2" name="minut" value="<?php if(isset($_POST['minut'])) echo $_POST['minut'] ?>"></td></tr>
</table>
<input type="submit" name="submit" value="Calculeaza virsta">
</form>
<?php
function GetNr($x,$nume,$min,$max) {
if((!isset($_POST[$x])) || (!is_numeric($_POST[$x]))) die("Completati cimpul '$nume'");
$nr = (int) $_POST[$x];
if( ($nr<$min) || ($nr>$max) ) die("'$nume' trebuie sa fie intre $min si $max");
return $nr;
};
function is_bisect($an) {
return (( $an % 4 == 0 && $an % 100 != 0 ) || $an % 400 == 0 );
}
if(isset($_POST['submit'])) {
$y0 = (int) date("Y");
$an = GetNr('an', 'An', $y0-140, $y0);
$luna = GetNr('luna', 'Luna', 1, 12);
$zile_in_luna = array(0,31,28,31,30,31,30,31,31,30,31,30,31);
if(is_bisect($an)) $zile_in_luna['2'] = 29;
$zi = GetNr('zi', 'Zi' , 1, $zile_in_luna[$luna]);
$ora = GetNr('ora', 'Ora', 0, 23);
$minut = GetNr('minut', 'Minut', 0, 59);
// data actuala
$azi_an = (int) date("Y");
$azi_luna = (int) date("m");
$azi_zi = (int) date("d");
$azi_ora = (int) date("H");
$azi_minut = (int) date("i");
// scadem data initiala
$carry = 0;
if($minut > $azi_minut) {
$carry=1; // trebuie scazuta o ora
$virsta_minut = 60 + $azi_minut - $minut;
} else $virsta_minut = $azi_minut - $minut;
if($ora > $azi_ora-$carry) {
$virsta_ora = 24 + $azi_ora - $carry - $ora;
$carry=1; // trebuie scazuta o zi
} else {
$virsta_ora = $azi_ora - $carry - $ora;
$carry=0;
}
if($zi > $azi_zi-$carry) {
$virsta_zi = $zile_in_luna[$luna] + $azi_zi - $carry - $zi;
$carry=1; // trebuie scazuta o luna
} else {
$virsta_zi = $azi_zi - $carry - $zi;
$carry=0;
}
if($luna > $azi_luna-$carry) {
$virsta_luna = 12 + $azi_luna - $carry - $luna;
$carry=1; // trebuie scazut un an
} else {
$virsta_luna = $azi_luna - $carry - $luna;
$carry=0;
}
$virsta_an = $azi_an - $carry - $an;
if($virsta_an<0) die("Ati introdus o data din viitor ;)");
// afisam rezultatul:
echo "<p>$virsta_an ani, $virsta_luna luni, $virsta_zi zile, $virsta_ora ore si $virsta_minut minute.";
}
?>
</body>
</html>
Logged
15-07-2009, 01:47
Twitt
::
emi
Mesaje:
Re: [php] Concurs 2 : date calendaristice
Sursa Claudiu:
Code:
<html>
<head>
<title>Varsta</title>
</head>
<body>
<form action="varsta_data.php" method="post">Anul =
<input type="text" name="an"> Luna =
<input type="text" name="luna"> Ziua =
<input type="text" name="zi"> Ora =
<input type="text" name="ora"> Minutul =
<input type="text" name="minut">
<input type="submit" name ="buton" value = "Do not push the button!">
</form>
<?php
// Preluam data/timpul din sistem
$an_sistem = (int) date("Y");
$luna_sistem = (int) date("m");
$zi_sistem = (int) date("d");
$ora_sistem = (int) date("H");
$minut_sistem = (int) date("i");
// Verificam inputul (sa nu fie NULL si sa aiba valori valide)
if (isset($_POST['an']) && $_POST['an'] > 1900 && $_POST['an'] < 2010) {
$an = $_POST['an'];
}
else exit("Nu ati introdus un an valid");
if (isset($_POST['luna']) && $_POST['luna'] > 0 && $_POST['luna'] < 13) {
$luna = $_POST['luna'];
}
else exit("Nu ati introdus o luna valida");
if (isset($_POST['zi']) && $_POST['zi'] > 0 && $_POST['zi'] < return_month_days($luna, $an)) {
$zi = $_POST['zi'];
}
else exit("Nu ati introdus o zi valida");
if (isset($_POST['ora']) && $_POST['ora'] > -1 && $_POST['ora'] < 25) {
$ora = $_POST['ora'];
}
else exit("Nu ati introdus o ora valida");
if (isset($_POST['minut']) && $_POST['minut'] > -1 && $_POST['minut'] < 61) {
$minut = $_POST['minut'];
}
else exit("Nu ati introdus un minut(?) valid");
// Returneaza true pentru ani bisecti, false pentru restul
function is_bisect($an) {
return (( $an % 4 == 0 && $an % 100 != 0 ) || $an % 400 == 0 );
}
// Returneaza numarul de zile din luna $month, anul $year
// folosind o lista de define-uri si functia de mai sus
function return_month_days($month, $year) {
define ("Ianuarie", "31");
define ("Martie", "31");
define ("Aprilie", "30");
define ("Mai", "31");
define ("Iunie", "30");
define ("Iulie", "31");
define ("August", "31");
define ("Septembrie", "30");
define ("Octombrie", "31");
define ("Noiembrie", "30");
define ("Decembrie", "31");
// Folosim metoda switch() pentru a returna valoarea ceruta
switch($month) {
case "1":
case "01":{
return Ianuarie;
break;
}
case "2":
case "02":{
if (is_bisect($year)) {
return 28;
break;
}
return 29;
break;
}
case "3":
case "03":{
return Martie;
break;
}
case "4":
case "04":{
return Aprilie;
break;
}
case "5":
case "05":{
return Mai;
break;
}
case "6":
case "06":{
return Iunie;
break;
}
case "7":
case "07":{
return Iulie;
break;
}
case "8":
case "08":{
return August;
break;
}
case "9":
case "09":{
return Septembrie;
break;
}
case "10":{
return Octombrie;
break;
}
case "11":{
return Noiembrie;
break;
}
case "12":{
return Decembrie;
break;
}
}
} // function return_month_days($month, $year)
/* Calculam varsta scazand anii/lunile/zilele/orele si minutele inregistrate
din cele actuale. Unde avem valori negative scadem scadem "unitatea" anterioara
si adunam numarul total de "subunitati"
Spre exemplu, daca luna curenta e 02, iar cea a nasterii e 06, inseamna ca au
trecut X ani si 8 luni (2-6 + 12)
*/
$ani = $an_sistem - $an;
$luni = $luna_sistem - $luna;
if ($luni < 1) {
$ani--;
$luni += 12;
}
// Aici trebuie avut grija atat la luni cat si la ani
$zile = $zi_sistem - $zi;
if ($zile < 1) {
$luni--;
if ($luni < 1) {
$ani--;
$luni += 12;
}
$zile += return_month_days($luna, $an);
}
$ore = $ora_sistem - $ora;
if ($ore < 0) {
$zile--;
$ore += 24;
}
$minute = $minut_sistem - $minut;
if ($minute < 0) {
$ore--;
$minute += 60;
}
// Outputul final
echo 'Varsta: '.$ani.' ani, '.$luni.' luni, '.$zile.' zile, '.$ore.' ore si '.$minute.' minute';
?>
</body>
</html>
Logged
15-07-2009, 01:54
Twitt
::
Pagini: [
1
]
Print
SkullBox Forum
|
Development
|
Concursuri de programare
| Topic:
[php] Concurs 2 : date calendaristice
Powered by SMF 1.1.11
|
SMF © 2006-2009, Simple Machines LLC
Loading...