Как проверить входить ли Notesdatetime в Notesdaterange?

Тема в разделе "Lotus - Программирование", создана пользователем dimat, 15 мар 2011.

  1. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    В справке что то ничего похожего не нашел.
    Подскажите как это сделать или где искать.
    Заранее спасибо.
     
  2. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    А сравнить Notesdatetime со значениями StartDateTime и EndDateTime нельзя разве?
     
  3. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Пробовал пишет ошибку при сохранении Type mismatch.
    Может конечно я как то не правильно записал сравнение?
    Код (Text):
    Dim dst as NotesDateTime
    Dim ndr as NotesDateRange
    If (dst.DateOnly>=ndr.StartDateTime) Or (dst.DateOnly<=ndr.EndDateTime) Then

    End If
    Или так
    Код (Text):
    Dim dst as NotesDateTime
    Dim ndr as NotesDateRange
    If (dst>=ndr.StartDateTime) Or (dst<=ndr.EndDateTime) Then

    End If
    результат один
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    это прикол такой - сравнивать неинициализированные переменные :(?
     
  5. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    lmike
    Они инициализированы, просто здесь не указал
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    тогда всё сравнивается
     
  7. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    .DateOnly возвращает строку.
    Код (LotusScript):
    Dim dst as NotesDateTime
    Dim ndr as NotesDateRange
    If (cdat(dst.DateOnly)>=ndr.StartDateTime) Or (cdat(dst.DateOnly)<=ndr.EndDateTime) Then

    End If
     
  8. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    И при каком сохранении ошибку выдает? На что конкретно ругается?
    Нормально должно сравнивать -- потыркайтесь и усё будзе добра!
    И про хелп Вы лукавите. Поколупайте его внимательней, приведенные там примеры изучите. В частности TimeDifference method можно прикрутить. И еще кой чего можно.
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    проще: dt.TimeDifference(dtEnd)>0
    еще есть SetAnyTime и SetAnyDate для особых нужд
     
  10. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Код (Text):
    (Cdat(dst.DateOnly)>=Cdat(ndr.StartDateTime.DateOnly)) And (Cdat(dst.DateOnly)<=Cdat(ndr.EndDateTime.DateOnly))
    так получилось, всем спасибо
     
  11. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    если честно - этой строкой делаете всякую...
    dst.SetAnyTime
    dst.LSLocalTime
    и также для границ рэнжа
    либо использовать диференц (луче всего, хотя менее наглядно)
    потому как преобразовывать в строку и обратно - сомнительное (по эффективности) действие
     
  12. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Индусом решил заделаться? :( Делай как lmike написал.
     
  13. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    правильне сравнивать БЕЗ преобразований а это Time.LSLocalTime
     
Загрузка...

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