من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

تمرین چند روزته – کدکاپ 4 + پی اچ پی

تمرین چند روزته - کدکاپ 4 + پی اچ پی
تمرین چند روزته - کدکاپ 4 + پی اچ پی

تمرین چند روزته – کدکاپ 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]