PDA

View Full Version : آموزش: تبدیل روز و ماه شمسی به ساعت



رضا قربانی
یک شنبه 17 دی 1391, 13:16 عصر
سلام و خسته نباشید خدمت تمامی دوستان و همکاران گرامی

امروز روی یه پروژه ای برای شرکتی بودم و تابعی نوشتم که بدرد برنامه نویس های عزیز می خوره و می تونن از این تابع در جاهایی که نیاز دارن استفاده کنن تا یه ثوابی هم ما ببریم :کف:
قضیه از این قراره که مثلا کارفرما یه تاریخی رو برای انجام دادن کار ، توسط شما ثبت می کنه و شما باید تا اون تاریخی که کارفرما درج کرده انجام بدید.

کار تابع : از زمان ثبت تاریخ تا زمانی که شما کار رو انجام دادید(تاریخ جدید) به ساعت براتون مشخص میکنه

مثلا فاصله تاریخ از زمان ثبت تا زمان حال دو روز و 10 ساعت فاصله داره . // خروجی میشه : 34 ساعت

آماده و منظم و خام در اختیار شما :

تابع :

function TiMeLiMiT($inD,$inT,$OutD,$OutT)
{
$InDate=explode('/',$inD);/// تاریخ ثبت اتمام کار '11/10/1391'
$InMah = $InDate[1]; // ماه اتمام
$InRooz = $InDate[0]; // روز اتمام
$InTime =$inT;/// ساعت ثبت اتمام کار فرمت 24 ساعته


$OutDate=explode('/',$OutD);/// در این تاریخ انجام داده ام '10/10/1391'
$OutMah= $OutDate[1]; // ماه انجام داده ام
$OutRooz= $OutDate[0]; //روز انجام داده ام
$OutTime=$OutT;/// در این ساعت انجام داده ام . فرمت 24 ساعته


switch ($OutMah){ case "1": { $RezaDate=31; break; }
case "2": { $RezaDate=31; break; }
case "3": { $RezaDate=31; break; }
case "4": { $RezaDate=31; break; }
case "5": { $RezaDate=31; break; }
case "6": { $RezaDate=31; break; }
case "7": { $RezaDate=30; break; }
case "8": { $RezaDate=30; break; }
case "9": { $RezaDate=30; break; }
case "10": { $RezaDate=30; break; }
case "11": { $RezaDate=30; break; }
case "12": { $RezaDate=29; break; }}
$C= ($InMah-$OutMah) * ($RezaDate * 24) ; // تبدیل هر ماه شمسی به ساعت
$MrGhorbani=(($InRooz-$OutRooz) * 24 ) + ($InTime-$OutTime) + $C ; // تبدیل باقیمانده روز به ساعت
echo $MrGhorbani;
}


TiMeLiMiT($inD,$inT,$OutD,$OutT)

$inD = تاریخ پایان
$inT = ساعت پایان
$OutD = تاریخ حال
$OutT = ساعت حال

نحوه فراخوانی مثلا :

TiMeLiMiT('11/10/1391','20','10/10/1391','10');// OUTPUT : 34 ساعت معادل 2 روز و 10 ساعت فاصله
موفق و پیروز باشید
مارو هم دعا کنید

rezaonline.net
یک شنبه 17 دی 1391, 19:57 عصر
سلام آقای قربانی خسته نباشید
خیلی ممنون از تابعی که قرار دادید

نکته جالبی که توی تابعتون دیدم اینکه switch ... case پرو پیمونی براش نوشتید :)
به نظرتون این قسمت رو


switch ($OutMah){ case "1": { $RezaDate=31; break; }
case "2": { $RezaDate=31; break; }
case "3": { $RezaDate=31; break; }
case "4": { $RezaDate=31; break; }
case "5": { $RezaDate=31; break; }
case "6": { $RezaDate=31; break; }
case "7": { $RezaDate=30; break; }
case "8": { $RezaDate=30; break; }
case "9": { $RezaDate=30; break; }
case "10": { $RezaDate=30; break; }
case "11": { $RezaDate=30; break; }
case "12": { $RezaDate=29; break; }}


اینجوری بنویسید زیباتر نیست ؟


$rDate = array(0,31,31,31,31,31,31,30,30,30,30,30,29);
$RezaDate = $rDate[intval($OutMah)];


قصد جسارت نداشتم ، بنده همیشه شاگرد شمام ، اما از نظر من دستورات هر چقدر کوتاهتر باشن زیباتر هستن
:)
بازم ممنون

colors
یک شنبه 17 دی 1391, 20:03 عصر
تابع :

function TiMeLiMiT($inD,$inT,$OutD,$OutT)
{
$InDate=explode('/',$inD);/// تاریخ ثبت اتمام کار '11/10/1391'
$InMah = $InDate[1]; // ماه اتمام
$InRooz = $InDate[0]; // روز اتمام
$InTime =$inT;/// ساعت ثبت اتمام کار فرمت 24 ساعته


$OutDate=explode('/',$OutD);/// در این تاریخ انجام داده ام '10/10/1391'
$OutMah= $OutDate[1]; // ماه انجام داده ام
$OutRooz= $OutDate[0]; //روز انجام داده ام
$OutTime=$OutT;/// در این ساعت انجام داده ام . فرمت 24 ساعته


switch ($OutMah){ case "1": { $RezaDate=31; break; }
case "2": { $RezaDate=31; break; }
case "3": { $RezaDate=31; break; }
case "4": { $RezaDate=31; break; }
case "5": { $RezaDate=31; break; }
case "6": { $RezaDate=31; break; }
case "7": { $RezaDate=30; break; }
case "8": { $RezaDate=30; break; }
case "9": { $RezaDate=30; break; }
case "10": { $RezaDate=30; break; }
case "11": { $RezaDate=30; break; }
case "12": { $RezaDate=29; break; }}
$C= ($InMah-$OutMah) * ($RezaDate * 24) ; // تبدیل هر ماه شمسی به ساعت
$MrGhorbani=(($InRooz-$OutRooz) * 24 ) + ($InTime-$OutTime) + $C ; // تبدیل باقیمانده روز به ساعت
echo $MrGhorbani;
}




کلا خوشم میاد همیشه اسمو فامیلت خودتت رو به متغییرها میدی! :قهقهه: