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

Тема в разделе "Lotus - Программирование", создана пользователем Antigo, 2 май 2012.

  1. Antigo

    Antigo Active Member

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

    Вложения:

    • min.jpg
      min.jpg
      Размер файла:
      21,7 КБ
      Просмотров:
      152
  2. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Класс NotesDateTime, метод TimeDifference
    Создать 2 объекта этого класса:
    1. из Date1 и Time1
    2. из Date2 и Time2
    и у одного из них выполнить TimeDifference с параметром - второй объект
    результатом будет разница в секундах, из этого уже и считать количество часов и минут

    Добавлено:
    На событие Onchange повесить?
     
  3. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    @TimeMerge - для склейки даты и времени.
    Потом одно вычитаем из другого и делим на 3600. Целая часть результата - часы. Остаток от деления - минуты.
     
  4. Antigo

    Antigo Active Member

    Регистрация:
    16 фев 2012
    Сообщения:
    41
    Симпатии:
    0
    спасибо! как наберу 10 сообщений - плюсану!
     
  5. Antigo

    Antigo Active Member

    Регистрация:
    16 фев 2012
    Сообщения:
    41
    Симпатии:
    0
    Склеил, высчитал, теперь другая загвоздка: я высчитал часы и минуты и занес их в Hours и Minutes, также я вычслил поля Hours1 и Minutes1 для других двух временных событий. Теперь главный вопрос, как мне вычислить поля SumHours и SumMinutes в которые должно быть записано суммарное время Hours-Minutes и Hours1-Minutes1. Часы в общм можно просто сложить SumHours = Hours + Hours1, а вот как быть с минутами? Ведь если минут больше 60, нужно делать прибавку к часам.. Если кто-то понял меня - подскажите плз..
     
  6. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Точнее "если минут больше 59", тогда делать прибавку к часу.

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

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    Издеваетесь? Про оператор if когда-нибудь слышали?
    Код (Text):
    hh = h1 + h2
    mm = m1 + m2
    if ( mm > 59 ){
    hh = hh + 1
    mm = mm - 60
    }
     
  8. Antigo

    Antigo Active Member

    Регистрация:
    16 фев 2012
    Сообщения:
    41
    Симпатии:
    0
    всем спасибо! проще придумал. просто все выразил в секундах, сложил, а потом секунды разбил на часы и минуты.
     
  9. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Тоже вариант, но осторожнее с округлениями. Например

    Seconds = 119
    Seconds1 = 119

    тогда

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

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

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

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    А как вычесть из даты два месяца на @формулах?
     
  11. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    см. @Adjust
     
Загрузка...
Похожие Темы - Манипуляции Датами
  1. lmike
    Ответов:
    11
    Просмотров:
    356
  2. Zeka
    Ответов:
    4
    Просмотров:
    2.687
  3. wowa
    Ответов:
    2
    Просмотров:
    4.037

Поделиться этой страницей