Так как язык не указан, приведу пример на SWI-Prolog.
Код:
Держи, PHP:
class Date {
private $день;
private $месяц;
private $год;
function __construct() {
$сегодня = new DateTime();
$this->день = $сегодня->format('d');
$this->месяц = $сегодня->format('m');
$this->год = $сегодня->format('Y');
}
public function Получить_год() { return $this->год; }
public function Получить_месяц() { return $this->месяц; }
public function Получить_день() { return $this->день; }
public function Високосный_год() {
return $this->год % 4 == 0 && ($this->год % 100 != 0 || $this->год % 400 == 0);
public function Плюс_5_дней() {
$дата = new DateTime(strtotime($this->год . '-' . sprintf('%02d', $this->месяц) . '-' . sprintf('%02d', $this->день)) + 60 * 60 * 24 * 5);
$this->день = $дата->format('d');
$this->месяц = $дата->format('m');
$this->год = $дата->format('Y');
$дата = new Date();
echo $дата->Високосный() ? 'Високосный' : 'Не високосный';
$дата->Плюс_5_дней();
Так как язык не указан, приведу пример на SWI-Prolog.
Код:
read_int(Int) :- read(Int), integer(Int).split_int_by_numbers(0, []) :- !.split_int_by_numbers(N, [Number|Ints]) :- Number is mod(N, 10), RestN is div(N, 10), split_int_by_numbers(RestN, Ints).test_to_div(_, []).test_to_div(N, [Number|Ints]) :- mod(N, Number) =:= 0, test_to_div(N, Ints). test(Int) :- split_int_by_numbers(Int, Numbers), test_to_div(Int, Numbers), write(Int), write(" - Yes!"), nl.test(Int) :- write(Int), write(" - No!"), nl.?- read_int(Int), test(Int).Держи, PHP:
class Date {
private $день;
private $месяц;
private $год;
function __construct() {
$сегодня = new DateTime();
$this->день = $сегодня->format('d');
$this->месяц = $сегодня->format('m');
$this->год = $сегодня->format('Y');
}
public function Получить_год() { return $this->год; }
public function Получить_месяц() { return $this->месяц; }
public function Получить_день() { return $this->день; }
public function Високосный_год() {
return $this->год % 4 == 0 && ($this->год % 100 != 0 || $this->год % 400 == 0);
}
public function Плюс_5_дней() {
$дата = new DateTime(strtotime($this->год . '-' . sprintf('%02d', $this->месяц) . '-' . sprintf('%02d', $this->день)) + 60 * 60 * 24 * 5);
$this->день = $дата->format('d');
$this->месяц = $дата->format('m');
$this->год = $дата->format('Y');
}
}
$дата = new Date();
echo $дата->Високосный() ? 'Високосный' : 'Не високосный';
$дата->Плюс_5_дней();