تمرین چند روزته – کدکاپ 4 + پی اچ پی
در این نوشته تمرین “چند روزته” که در مسابقهی کدکاپ آمده است را با زبان برنامه نویسی پی اچ پی حل خواهیم کرد.
تمرین چند روزته – کدکاپ 4 + پی اچ پی
در این سوال قرار است شما تاریخی را به عنوان ورودی دریافت کنید و تعداد روزهای باقیمانده از امروز تا تاریخ مورد نظر را محاسبه کنید (برای مثال تعداد روزهای باقیمانده از امروز تا فردا ۱ است). اگر تاریخ مورد نظر قبل از امروز بود عبارت “gone” (بدون علامت “) و در غیر این صورت عدد محاسبه شده را چاپ کنید.
مثال:
input : 2005-01-06 output: gone --------------------- (example today) input : 2018-10-12 output: 0 --------------------- input : 2018-10-14 output: 2
نکته:
- امروز 12-10-2018 بوده است ولی شما ممکن است روز دیگری این برنامه را اجرا کنید.
- تاریخ مورد نظر با متد POST و تحت کلید date برای برنامهی شما آمده است.
- نوع کار با تاریخ Y-m-d است.
- برای خروجی از echo استفاده شود و هیچ html اضافهای در خروجی قرار ندهید.
کد + حل:
<?php
//$_POST['date'] = "2011-10-12";
if(isset($_POST['date']) && !empty($_POST['date']))
{
$date = explode("-", $_POST['date']);
if ($date[0]==date("Y") && $date[1]==date("m") && $date[2]==date("d"))
echo 0;
elseif($date[0]<date("Y"))
echo "gone";
elseif ($date[0]==date("Y") && $date[1]<date("m"))
echo "gone";
elseif($date[0]==date("Y") && $date[1]==date("m") && $date[2]<date("d"))
echo "gone";
else {
$mytime = new DateTime($_POST['date']);
$now = new DateTime(date("Y") . "-" . date("m") . "-" . date("d"));
$difference = $mytime->diff($now);
echo $difference->days;
}
}
?>
بعد از بررسی کردن وجود ورودی مقدار تاریخ را خرد میکنیم و بعد از بررسی جهت گذشته شدن از تاریخ با تاریخ امروز آن را مقایسه کرده است. تعداد فاصلهی روزهای مورد نظر را چاپ میکنیم.
منبع سوال: سایت کوئرا
برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]



















پی اج پی سریعتره یا پایتون؟
این سوال جواب قطعی ندارد بستگی به محیط و برنامه نویس پروژه دارد.
آیا خروجی به فارسی (مثلا گذشته) هم ممکنه؟
بله این امکان وجود دارد.
جالب بود که تاریخ «gone» رو وقتی تاریخ گذشته باشه با یه کلمه ساده چاپ میکنه
سپاس از پیشنهادتون.
آیا ورودی با فرمت دیگری هم ممکنه مثل YYYY/MM/DD؟
بله امکانپذیر است.
نکته استفاده از $_POST[‘date’] کنار فرمت خروجی نکته خوبی بود
موفق باشید.