• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Манипуляции С Датами

  • Автор темы Antigo
  • Дата начала
A

Antigo

Всем привет!
Вот такой вопросик уменя не очень сложный.
Есть поля типа дата/время: Date1, Date2, Time1, Time2. Даты вида 02.05.12, время вида 10.25. в текстовые поля Hours и Minutes нужно занести разницу между двумя событиями (Date1:Time1) и (Date2:Time2). вопрос в том, как мне подсчитать разницу между событиями и звписать в текстовые поля Hours и Minutes (желат на собако-формулах) Причем результат должен сразу выводиться после ввода данных
 

Вложения

  • min.jpg
    min.jpg
    11,5 КБ · Просмотры: 382

dimat

Well-known member
31.07.2008
508
0
BIT
0
Класс NotesDateTime, метод TimeDifference
Создать 2 объекта этого класса:
1. из Date1 и Time1
2. из Date2 и Time2
и у одного из них выполнить TimeDifference с параметром - второй объект
результатом будет разница в секундах, из этого уже и считать количество часов и минут

Добавлено:
Причем результат должен сразу выводиться после ввода данных
На событие Onchange повесить?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
@TimeMerge - для склейки даты и времени.
Потом одно вычитаем из другого и делим на 3600. Целая часть результата - часы. Остаток от деления - минуты.
 
A

Antigo

спасибо! как наберу 10 сообщений - плюсану!
 
A

Antigo

@TimeMerge - для склейки даты и времени.
Потом одно вычитаем из другого и делим на 3600. Целая часть результата - часы. Остаток от деления - минуты.
Склеил, высчитал, теперь другая загвоздка: я высчитал часы и минуты и занес их в Hours и Minutes, также я вычслил поля Hours1 и Minutes1 для других двух временных событий. Теперь главный вопрос, как мне вычислить поля SumHours и SumMinutes в которые должно быть записано суммарное время Hours-Minutes и Hours1-Minutes1. Часы в общм можно просто сложить SumHours = Hours + Hours1, а вот как быть с минутами? Ведь если минут больше 60, нужно делать прибавку к часам.. Если кто-то понял меня - подскажите плз..
 
T

TIA

Точнее "если минут больше 59", тогда делать прибавку к часу.

SumMinutes : = @Modulo(Minutes + Minutes1; 60);
SumHours := Hours + Hours1 + @Integer((Minutes + Minutes1)/60);
 
T

turumbay

Часы в общм можно просто сложить SumHours = Hours + Hours1, а вот как быть с минутами? Ведь если минут больше 60, нужно делать прибавку к часам..
Издеваетесь? Про оператор if когда-нибудь слышали?
Код:
hh = h1 + h2
mm = m1 + m2
if ( mm > 59 ){
hh = hh + 1
mm = mm - 60
}
 
A

Antigo

всем спасибо! проще придумал. просто все выразил в секундах, сложил, а потом секунды разбил на часы и минуты.
 
T

TIA

Тоже вариант, но осторожнее с округлениями. Например

Seconds = 119
Seconds1 = 119

тогда

Minutes = 119 \ 60 = 1
Minutes1 = 119 \ 60 = 1

SumMinutes = (119 + 119) \ 60 = 3 <> Minutes + Minutes1

Пользователь позларадствует, что 1+1=3
 
S

Serduko

А как вычесть из даты два месяца на @формулах?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!