Loading src/Controller/HomeController.php +19 −9 Original line number Diff line number Diff line Loading @@ -2,6 +2,9 @@ namespace App\Controller; use DateInterval; use DatePeriod; use DateTime; use DateTimeImmutable; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; Loading @@ -9,17 +12,24 @@ use Symfony\Component\Routing\Attribute\Route; class HomeController extends AbstractController { private function howDaysToNy(DateTimeImmutable $date): int { $endYear = date("Y-12-31", date_timestamp_get($date)); $dateInterval = date_diff(new DateTimeImmutable($endYear), $date); return $dateInterval->format("%a") + 1; private function countFriday13(int $year): iterable { $stardDate = new DateTime("{$year}-01-01 Friday"); $year += 1; $endDate = new DateTime("{$year}-01-01"); $interval = new DateInterval('P7D'); foreach(new DatePeriod($stardDate, $interval, $endDate) as $day) { yield new DateTimeImmutable($day->format("Y-m-d")); } } #[Route('/', name: 'home')] public function home(): Response { $count = $this->howDaysToNy(new DateTimeImmutable()); return $this->render('home.html.twig', ['count' => $count]); #[Route('/{year}', name: 'home')] public function home(int $year): Response { $fridays = array(); foreach($this->countFriday13($year) as $date) { $fridays[] = $date->format("Y-m-d l"); } return $this->render('home.html.twig', ['fridays' => $fridays]); } } templates/home.html.twig +4 −1 Original line number Diff line number Diff line {% block body %} <h1>Кол-во дней до НГ: {{ count }}</h1> <h1>Кол-во пятниц 13 в году: {{ fridays|length }}</h1> {% for day in fridays %} <p>{{ day }}</p> {% endfor %} {% endblock %} No newline at end of file Loading
src/Controller/HomeController.php +19 −9 Original line number Diff line number Diff line Loading @@ -2,6 +2,9 @@ namespace App\Controller; use DateInterval; use DatePeriod; use DateTime; use DateTimeImmutable; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; Loading @@ -9,17 +12,24 @@ use Symfony\Component\Routing\Attribute\Route; class HomeController extends AbstractController { private function howDaysToNy(DateTimeImmutable $date): int { $endYear = date("Y-12-31", date_timestamp_get($date)); $dateInterval = date_diff(new DateTimeImmutable($endYear), $date); return $dateInterval->format("%a") + 1; private function countFriday13(int $year): iterable { $stardDate = new DateTime("{$year}-01-01 Friday"); $year += 1; $endDate = new DateTime("{$year}-01-01"); $interval = new DateInterval('P7D'); foreach(new DatePeriod($stardDate, $interval, $endDate) as $day) { yield new DateTimeImmutable($day->format("Y-m-d")); } } #[Route('/', name: 'home')] public function home(): Response { $count = $this->howDaysToNy(new DateTimeImmutable()); return $this->render('home.html.twig', ['count' => $count]); #[Route('/{year}', name: 'home')] public function home(int $year): Response { $fridays = array(); foreach($this->countFriday13($year) as $date) { $fridays[] = $date->format("Y-m-d l"); } return $this->render('home.html.twig', ['fridays' => $fridays]); } }
templates/home.html.twig +4 −1 Original line number Diff line number Diff line {% block body %} <h1>Кол-во дней до НГ: {{ count }}</h1> <h1>Кол-во пятниц 13 в году: {{ fridays|length }}</h1> {% for day in fridays %} <p>{{ day }}</p> {% endfor %} {% endblock %} No newline at end of file