время сервака разные

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

  1. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    привет всем

    направьте на путь истинный
    есть база в серваке, пытаюсь получить время сервера с помощью:
    Код (Text):
    '=
    set ses=new notessession
    set cdb=ses.currentdatabase
    set doc=cdb.createdocument
    ss=cstr(doc.created)
    '=
    '=
    так вот получаю этот ss и записываю его в поле в документе и сохраняю
    но значения поля (ss) и свойства документа Modified (это свойство показывает точное время изменения документа) не совпадают, разница в иногда 1 час, иногда 2 часа, или 15 минут ну по разному.
    Почему doc.created врьет?
     
  2. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Этот код где выполняется? на сервере или на локале?
     
  3. K-Fire

    K-Fire Гость

    Гмм, т.е. сразу после создания документа смотрим это поле и дату модификации и они не совпадают больше чем на 15 минут?
     
  4. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    на серваке

    не тока на 15 иногда час или два

    Если подробнее то Дело обстоит так
    Это для тестирования
    Когда студент начинает тестирования я запоминаю время сервака (Set BeginTime =New NotesDateTime(doc.Created)) и записываю его в документ тестирования в поле BeginTime
    И после срабатывает таймер с интервалом одна секунда и тож получает время сервака на текущий момент (Set NowTime =New NotesDateTime(doc.Created)//тоже записывается в документ) и вычисляет разницу в секундах между (BeginTime и NowTime) и отведенным временем в сек.
    То есть оставшиеся секунды
    Left_Seconds=Seconds - Abs(NowTime.TimeDifference(BeginTime))
    Ну если разница равен или меньше нуля то конечно тестирование заканчивается
    ////////
    Так вот проблема в том что doc.Created возвращает не корректное время
    Если студент сдавал тест между 10,00 и 11,00 утра
    А в документе иногда указыватся 8,00 и 9,00 утра (BeginTime и NowTime)

    p.s
    см. рис.
    1-время начало (по системе)


    1'-время начало (программно//BeginTimе)
     

    Вложения:

    • 002.jpg
      002.jpg
      Размер файла:
      92,1 КБ
      Просмотров:
      47
  5. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Это всё выполняется на сервере - в агенте, например? Может, всё-таки виновата разница во времени (час. поясе) на сервере и локальном компьютере? Или студенты время меняют? :rolleyes:))
    Если документ сохраняется, что в поле $Revisions? (если оно присутствует)
     
  6. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    нет не агент
    все дело происходит на форме
    онпоустопен и на таймерхэндлере

    разница во времени (час. поясе) на сервере и локальном компьютере не должно же влиять на (doc.Created)
    так как док создался в базе которая лежит в серваке
    оно же не должно иметь дело с локальными настройками времени в компе
     
  7. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    кгм... как это не должно?! это время отображается относительно текущего для того, кто смотрит...

    ты бы объяснил параллельно чего хочешь достичь, может твоя проблема (текущая) и не проблема вовсе...
     
  8. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    я хочу достать точное время сервака
     
  9. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Кстати, ты в 1м примере берешь время как строку - она сохраняет время в привязке к зоне лок. компа. Точнее, оно его вообще в строку сохранит без учета коррекции зоны. И при неправильной настройке дельту в часах ты получишь запросто, т.к. Created хранится как время и учитывает зону компа, на котором документ открыт.
    тебе поможет @Now( flags ; serverNames )
    Note The flags and serverNames parameters are new with Release 6.
    Parameters
    flags
    Keyword or keyword list. Optional.
    [SERVERTIME] gets the time-date from the server containing the database if serverNames is not specified or from serverNames ifserverNames is specified.
     
  10. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    это следствие, а причина? :rolleyes:
    когда-то я разрабатывал систему тестирования, то там похожая задача была (определить время сервера) т.к. время начала тестирования было зафиксировано, и чтобы пользователь не мог перевести часы локально, проводилось сравнение с временем на сервере...
    а тебе зачем это время?

    зы: я использовал то, что тебе порекомендовала OKEN, только собачное @Now(...)
     
  11. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Нотес считывает системное время только в момент запуска. Т.е. для того, чтобы переведённое системное время оказывало влияние на doc.Created, Now и т.п., требуется перегрузить Нотес. Но тогда и тест прерывается. Я к тому, что для вычисления прошедшего кол-ва секунд вполне можно пользовать локальное время (Timer, Now и т.п.).
     
  12. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    я для расчета прошедшего времени юзал NotesTimer :) (для ограничения времени теста)
    а на серваке время сравнивал, чтобы "занятые" сотрудники вовремя тест проходили, а не как-нить потом... (требование заказчика)
     
  13. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    На скриншоте отображены даты модификации какого документа, текущего или нового серверного? Если серверного - то почему такая разница между Added и Modified Initially?
     
  14. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    судя по всему на скрине документ, который изменили через полмесяца :) но никак не только что созданный
     
  15. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Вот-вот. Не сходится что-то. "Чюда" не случится, скорее обнаружится невнимательность.
     
  16. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    1) Об скриншоте
    Окошка свойств документа относится документу которое отображена снизу данной окошки
    2) ПРОШУ ОБРАТИТЬ ОСОБОЕ ВНИМАНИЕ НА СВОЙСТВО «Created» В ОКОШКЕ И НА ПОЛЕ «Время начала». Почему времена указанные в этих полях слишком разные, а должно быть разница в 2-3 секунды (Почему объясню в 3 пункте). (А остальные свойства типа Modified не имеет значение так как документ через полмесяца может быть изменен, может студент подал на апелляцию)
    3) 1. Студент выбирает дисциплину и нажимает на кнопку «Начать тестирование»
    2. Алгоритм кнопки выполняет след.
    - создает документ результата, отображенной в скриншоте и сохраняет его (свойство Created относится к данному доку)
    - создает 20 или 30, взависимости от количества вопросов в тесте, респонсы выше указанному документу, в которых отображены ВОПРОС ТЕСТА И 5 ВАРИАНТОВ ОТВЕТА.
    -после того как сформировались вопросы теста, студенту открывается первый вопрос (т.е. первый респонс), при открытии который запоминается «Время начала» (с помощью переменной doc типа NotesDocument // Set doc=cdb.CreateDocument: ss=cstr(doc.Created) // здесь ss это поле «Время начала», которого вы видите в скриншоте (оно записывается в главный док))
    -ну потом срабатывает таймер каждую секунду, получая время сервака аналогичным образом и сверяя его с начальным временем

    ТАК ВОПРОС
    ПОЧЕМУ СВОЙСТВА Created И «Время начала» СЛИЧШОМ РАЗНЫЕ? (Разница в 2 часа)

    Надеюсь объяснил доходчиво
     
  17. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    А св-во Created получено на том же рабочем месте, что и созданный документ? Если нет, то это скорее всего расхождение в часовых поясах. Строка получена в часовом поясе студента (7 часов), а св-во документа отображается в Вашем часовом поясе (9 часов). Так?
     
  18. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    я тож думаю, что пояс :) и требуемую разницу в 2 сек там тоже видно ))
     
Загрузка...

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