
Написать класс Date, содержащий три поля: день, месяц, год. С помощью функций осуществить: 1)
Проверку года на високосность 2) Увеличить дату на 5 дней

Ответы на вопрос

Держи, 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_дней();



PascalABC.NET 3.4.2, сборка 1859 от 08.11.2018
Внимание! Если программа не работает, обновите версию!
type
Date = class
private
Дата: System.DateTime;
public
день, месяц, год: integer;
constructor(d, m, y: integer);
begin
try
Дата := new System.DateTime(y, m, d);
(день, месяц, год) := (d, m, y);
except
Println('Недопустимая дата');
(день, месяц, год) := (1, 1, 0);
end
end;
procedure ДобавитьДни(dd: integer);
begin
Дата := Дата.AddDays(dd);
(день, месяц, год) := (Дата.Day, Дата.Month, Дата.Year)
end;
function ГодВисокосный: boolean;
begin
if год mod 400 = 0 then Result := True
else
if год mod 100 = 0 then Result := False
else Result := год mod 4 = 0
end;
end;
begin
var (d, m, y) := ReadInteger3('Введите день, месяц и год:');
var dd := new Date(d, m, y);
if dd.ГодВисокосный then Println('Год високосный')
else Println('Год не високосный');
dd.ДобавитьДни(5);
Print('Новая дата', $'{dd.Дата:dd.MM.yyyy}')
end.
Пример
Введите день, месяц и год: 9 11 2018
Год не високосный
Новая дата 14.11.2018



Вот пример реализации класса Date на языке Python:
pythonclass Date:
def __init__(self, day, month, year):
self.day = day
self.month = month
self.year = year
def is_leap_year(self):
if self.year % 4 == 0 and (self.year % 100 != 0 or self.year % 400 == 0):
return True
else:
return False
def increase_date(self):
days_in_month = [31, 28 + int(self.is_leap_year()), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
self.day += 5
while self.day > days_in_month[self.month - 1]:
self.day -= days_in_month[self.month - 1]
self.month += 1
if self.month > 12:
self.month = 1
self.year += 1
Класс Date содержит три поля: day
, month
и year
. Метод is_leap_year()
проверяет, является ли год високосным. Метод increase_date()
увеличивает дату на 5 дней, учитывая количество дней в каждом месяце и возможность перехода на следующий год.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili