Плиз помогите мне нужно ответь Определить дату и день недели, которые наступят через 500...

0 голосов
92 просмотров

Плиз помогите мне нужно ответь
Определить дату и день недели, которые наступят через 500 дней, 50 часов, 50 минут и 50 секунд от следующей даты '05.05.2005 17:05:05'.


спросил от (45 баллов) в категории Информатика

2 Ответы

0 голосов
ответил от Архангел (142k баллов)
 
Лучший ответ

// PascalABC.NET 3.1, сборка 1256 от 21.06.2016
uses System;
begin
  var d:=DateTime.Parse('05.05.2005 17:05:05');
  Writeln('Исходная дата: ',d);
  d:=d.AddDays(500).AddHours(50).AddMinutes(50).AddSeconds(50);
  Writeln('Полученная дата: ',d,' ',d.DayOfWeek);
end.

Результат
Исходная дата: 05.05.2005 17:05:05
Полученная дата: 19.09.2006 19:55:55 Tuesday

оставил комментарий от (45 баллов)

Спасибо огромное вам

оставил комментарий от Архангел (142k баллов)

Пожалуйста. У нас для "спасибо" есть специальная кнопочка, чтобы не писать комментарии, которые потом приходится удалять))))

0 голосов
ответил от Супер Кандидат Наук (38.6k баллов)

//Pascal ABC.NET 3.1 сборка 1256

uses
 system;

Var
 d:datetime;
begin
{так как изначальное значение переменной d равно 01.01.0001 0:00:00, вычитаем из года, месяца и дня единицу}
d:=d.AddYears(2004).AddMonths(4).AddDays(4).AddSeconds(5).AddMinutes(5).AddHours(17);
d:=d.AddDays(500).AddHours(50).AddMinutes(50).AddSeconds(50);writeln(d,' ',d.DayOfWeek);
end.

Вывод:
19.09.2006 19:55:55 Tuesday

оставил комментарий от Архангел (142k баллов)

Ошибка. Попробуйте проверить в Excel: =A1+500+50/24+50/24/60+50/24/3600

оставил комментарий от Супер Кандидат Наук (38.6k баллов)

Да, забыл что при инициализации значение переменных типа datetime равно 01.01.0001 0:00:00. Пытаюсь исправить.

оставил комментарий от (45 баллов)

Мне надо было в паскале это верно и тебе спасибо что хотел помоч

оставил комментарий от Супер Кандидат Наук (38.6k баллов)

"Спасибо" не мне, а модератору. Я забыл важную деталь.

оставил комментарий от Супер Кандидат Наук (38.6k баллов)

Исправлено.

оставил комментарий от Архангел (142k баллов)

Да, только задавать d:=d.AddYears(2004); d:=d.AddMonths(4); d:=d.AddDays(4); не совсем очевидно при дате 05.05.2005. Может, какой-то более понятный вариант найти... ну, там с отрицательными числами...

оставил комментарий от Архангел (142k баллов)

Либо хотя бы комментарий дать в теле программы. Эти же все будут отрезаны потом.

...