Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2010, 14:28   #1
monty "2"
Пользователь
 
Регистрация: 27.11.2009
Сообщений: 26
По умолчанию Проверьте код

Была задача: Заданы моменты начала и конца некоторого периода времени в часах, минутах и секундах. Найти продолжительность этого периода в том же виде (в пределах одних суток). Тип Data не использовать.

Есть код реализации

Код:
h:= strTOint(Edit1.Text);
m:= strTOint(Edit2.Text);
s:= strTOint(Edit3.Text);

h1:= strTOint(Edit4.Text);
m1:= strTOint(Edit5.Text);
s1:= strTOint(Edit6.Text);

if (s-s1)<0 then begin m:=m-1; s:=s+60-s1 end else s:=s-s1;
if (m-m1)<0 then begin h:=h-1; m:=m+60-m1 end else m:=m-m1;
if (h-h1)<0 then s:=h+24-h1 else h:=h-h1;
Label3.Caption:= inttostr(h)+':'+floattostr(m)+':'+inttostr(s);
Но если задать первый промежуток 01:30:50 а второй 23:30:50 то результатом является 1:0:2 а должно быть 2:0:0. Помогите найти ошибку

Последний раз редактировалось monty "2"; 08.04.2010 в 14:30.
monty "2" вне форума Ответить с цитированием
Старый 08.04.2010, 16:10   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от monty "2" Посмотреть сообщение
Заданы моменты начала и конца некоторого периода времени
...
Но если задать первый промежуток 01:30:50 а второй 23:30:50 то результатом является 1:0:2 а должно быть 2:0:0. Помогите найти ошибку
Судя по условию, должно быть 22 часа.

Промежуток между началом (h1:m1:s1) и концом (h:m:s)
Код:
  t := h*3600+m*60+s - h1*3600-m1*60-s1;
  if t < 0 then t := 24*3600 + t;

  Label3.Caption:= inttostr(t div 3600) + ':' + inttostr(t mod 3600 div 60) + ':' + inttostr(t mod 3600 mod 60);
eoln вне форума Ответить с цитированием
Старый 08.04.2010, 17:44   #3
monty "2"
Пользователь
 
Регистрация: 27.11.2009
Сообщений: 26
По умолчанию

чтобы было 22 часа у меня уже написан код но препод хочет что именно 2 показывал

eoln вроде работает

Последний раз редактировалось monty "2"; 08.04.2010 в 17:47.
monty "2" вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверьте пожалуйсто код. Дима я Общие вопросы C/C++ 6 14.11.2009 14:04
С++. Проверьте пожалуйста код Alexandrk8 Помощь студентам 11 10.09.2009 11:45
код программы проверьте innaa639 Помощь студентам 3 28.05.2009 12:18
Проверьте код ! Михаил Юрьевич Общие вопросы Delphi 7 08.02.2008 09:32
Проверьте пожалуйста код forumu Помощь студентам 1 27.12.2007 21:49