$array=array
(
"0" => Array
(
"bas" => "2008-04-10",
"bit" => "2008-04-21"
),
"1" => Array
(
"bas" => "2008-06-24",
"bit" => "2008-06-25"
),
"2" => Array
(
"bas" => "2008-06-24",
"bit" => "2008-09-10"
),
"3" => Array
(
"bas" => "2008-06-24",
"bit" => "2008-07-22"
),
"4" => Array
(
"bas" => "2008-09-04",
"bit" => "2008-09-10"
)
);
$trhler=array();
foreach ($array as $trh) {
for ($z = strtotime($trh[bas]); $z < strtotime($trh[bit]); $z=$z+86400) {
if(!in_array($z,$trhler))
$trhler[]=$z;
}
}
$gun=count($trhler);
Hocam şöyle bi mantıkla sorunumu çözdüm gibi ama saçma mı oldu dersin?
----- Original Message ----
From: Omer Barlas <omer@serbestcagrisim.com>
To: linux-programlama@liste.linux.org.tr
Sent: Friday, October 17, 2008 9:34:47 AM
Subject: [Linux-programlama] Re: çalışma süresi hesaplama hk.
ilyas OZGOREN @ 16.10.2008 22:57:
> Hocam bilgilerin için teşekkür ederim sanırım biraz eksik bilgi verdim
> benim sorduğum şey mysql de bir table içinde ki kayıtlar değil aşağıdaki
> tablo bir array içerisinde ve array içerisndeki kayıtlara göre olucak
hocam tüm kayıtları ayrı birer array olarak düşünün;
array(
0 => array(
"baslangic" => "2007-12-04",
"bitis" => "2008-02-21"
),
1 => array(
"baslangic" => "2007-12-04",
"bitis" => "2008-02-21"
),
2 => array(
"baslangic" => "2007-12-04",
"bitis" => "2008-02-21"
),
3 => array(
"baslangic" => "2007-12-04",
"bitis" => "2008-02-21"
),
....
n => array(
.....
)
)
daha sonra her seferinde array'i resetleyerek teker teker çalışma
aralıklarını deneyin;
for ($i = 0; $i < count($array); $i++) {
$veri = $array[$i];
reset($array); // array indexi geri döndürelim;
for ($z = 0; $z < count($array); $z++) {
$kontrol = $array[$z];
if ($veri["baslangic"] >= $kontrol["baslangic"] and $veri["bitis"] <=
$kontrol["bitis"] and $i != $z) {
// bir ÅŸey yapma.
} else {
echo $kontrol["baslangic"] . " - " . $kontrol["bitis"] . " = " .
((strtotime($kontrol["bitis"])-strtotime($kontrol["baslangic"]))/86400);
}
}
}
gibi...
kodun daha düzgün görünümü için bkz;
http://pastebin.com/f374488f4
--
Omer Barlas
omer@serbestcagrisim.com
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
__________________________________________________
Yahoo! kullanıyor musunuz?
İstenmeyen postadan bıktınız mı? Yahoo! Posta'da piyasanın en iyi istenmeyen posta korunması var
http://tr.mail.yahoo.com
_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Fri 17 Oct 2008 - 11:09:47 EEST