Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Delphi. Задача на дату и время. Подскажите идею решения.

Александр Ученик (15), закрыт 6 лет назад
В поле ввода edt1 вводится дата отправления поезда в формате dd.mm.yyyy, время отправления - в поле edit2 в формате hh.mm и время в пути в поле edit3 в формате (время в пути не превышает 99 часов 59 минут). Определить день недели, в который поезд прибудет на конечную станцию.
Лучший ответ
Smoker68 Ученик (195) 6 лет назад
Edit1.Text и Edit2.Text объединяем и преобразуем у Tdatetime. Edit3.Text переводим в минуты. Функцией DateUtils.IncMinute эти минуты добавляем к первому Tdatetime. Из получившегося функцией DayOfWeek получаем день недели.
Александр Ученик (15) 6 лет назад
А можно поподробнее про функцию DateUtils.IncMinute. Как ей пользоваться?
Smoker68 Ученик (195) Хелп поставить лениво ? ;) function IncMinute(const AValue: TDateTime; const ANumberOfMinutes: Int64 = 1): TDateTime; AValue - дата, которую увеличиваем. ANumberOfMinutes - число минут, которые прибавляем. На выходе опять TDateTime.
Александр Ученик (15) 6 лет назад
Допустим время в пути находится в переменной a
Александр Ученик (15) 6 лет назад
И как часы из формата hh:mm перевести в минуты?
Smoker68 Ученик (195) Из Edit3.Text отрезать кусок до символа ":" - это часы. StrToInt сделает из часов число. Умножаем его на 60 и получаем минуты. К ним прибавляем оставшееся минуты.
Остальные ответы
ys ys Мыслитель (8099) 6 лет назад
Преобразуй все три поля вTDateTime потом просуммируй и снова результат преврати в текст и будет тебе счастье
Александр Ученик (15) 6 лет назад
А разве можно прибавлять время в пути, тут же не 24 часа
ys ys Мыслитель (8099) 1. самое простое попробовать и проверить :) 2. вTDateTime - это фактически дабл. Целая часть - кол дней с начала отсчета, дробная - часть дня с начала суток (кажись так)
Иван Труфанов Профи (662) 6 лет назад
Он взял моё мнение.
Edit1.Text и Edit2.Text объединяем и преобразуем у Tdatetime. Edit3.Text переводим в минуты. Функцией DateUtils.IncMinute эти минуты добавляем к первому Tdatetime. Из получившегося функцией DayOfWeek получаем день недели.
Евгений Ломега Оракул (68031) 6 лет назад
Какие идеи? В задаче все написано, ни каких инноваций сделай в точности как требует условие и будет тебе счастье.
Если ты не знаешь Delphi то :
1. TEdit содержит текст (любой) т. е. пользователь может ввести что-то не правильно и нужно предусмотреть проверку правильности формата, но лучше использовать TMaskEdit
2. Для перевода строки в дату существует функция StrToDate
3. Тип TDateTime это по сути вещественное число, т. е. тебе достаточно сложить дату отправления с временем в пути чтобы получить дату прибытия
4. Из даты определить день недели можно с помощью функции DayOfWeek, имей ввиду 1- это воскресение, 7 - суббота
Евгений ЛомегаОракул (68031) 6 лет назад
Если не хочешь изучать Delphi пиши на почту, договоримся
Похожие вопросы