Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lotus Notes/Domino: Программирование
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.61/244: Рейтинг темы: голосов - 244, средняя оценка - 4.61
otb
0 / 0 / 0
Регистрация: 09.07.2005
Сообщений: 209
1

сравнение дат

12.07.2007, 16:42. Просмотров 43978. Ответов 36
Метки нет (Все метки)

есть документы созданные по форме tplan а на форме поле dataplan тип дата

понадобился сранить дату сохраненный в этой форме с другой датой созданный в теле скрипта но выходить ошибка Type mismatch
делаю так


...
dym dt as New NotesDateTime("25/08/"+sdoc.god_postup(0))
...
if tplan.dataplan<=dt then здесь и вылетает ошибка
....
пробовал:


if tplan.dataplan(0)<=dt then
также


dym dt1 as New NotesDateTime dt1 другая переменная не путайте с dt
Set item=tpdoc.GetFirstItem("dataplan")
Set dt1=item.DateTimeValue
if dt1<=dt then
все равно ошибка

подумал может dt не правильно создается
сделал просто dym dt as New NotesDateTime("25/08/2006")

все равно ошибка

обе даты пробовал присвоит к переменнным типа вариант и сравнить опять ошибка
что я делаю не так
как вообще сравнивать даты лотус скриптом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2007, 16:42
Ответы с готовыми решениями:

Сравнение Дат
есть одна дата в дебагере она X = &quot;22.02.2013&quot; и вторая Y= &quot;19.09.2013&quot; если...

Сравнение дат
Подскажите, пожалуйста, как сравнивать даты в LS. У меня не работает следующий...

Сравнение Дат В Search Formula
Доброго времени суток уважаемые. Проблемка нарисовалась ... Существует агент,...

массив дат
Привет! перебираю даты в цикле и записываю нужные в массив как сделать...

Интервал дат
Есть форма1 с 2мя полями типа дата, в них указывается интервал дат, есть форма2...

36
yukym
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 185
28.03.2012, 09:35 21
Всем доброго дня. Дабы не создавать новую тему, отпишусь тут...
Ситуация у меня схожая с kizarek , но разница в том, что мне надо не просто сравнить даты...
Мне нужно следующее: есть поле, куда проставляется дата, которая должна сравниваться с текущей. И вычисляемое поле с вариантами...
Если разница в пределах одного месяца - один вариант, <12 месяцев - второй, >12 месяцев - третий. Честно говоря даже не представляю, как это реализовать. Если кто знает, как это сделать, помогите пожалуйста.
PS: чем проще будет способ, тем лучше, желательно на @формулах, потому что в LS я еще пока вообще ничего не понимаю.
0
Mydyvys
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
28.03.2012, 09:39 22
Цитата Сообщение от Eugen
Всем доброго дня. Дабы не создавать новую тему, отпишусь тут...
Ситуация у меня схожая с kizarek , но разница в том, что мне надо не просто сравнить даты...
Мне нужно следующее: есть поле, куда проставляется дата, которая должна сравниваться с текущей. И вычисляемое поле с вариантами...
Если разница в пределах одного месяца - один вариант, <12 месяцев - второй, >12 месяцев - третий. Честно говоря даже не представляю, как это реализовать. Если кто знает, как это сделать, помогите пожалуйста.
PS: чем проще будет способ, тем лучше, желательно на @формулах, потому что в LS я еще пока вообще ничего не понимаю.
Даты вычитаются. Результат в секундах.
0
yukym
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 185
28.03.2012, 10:48 23
Medevic
Спасибо огромное, проблема решена)
0
yukym
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 185
29.07.2012, 11:34 24
Возник новый вопрос:
Есть dialogbox, который формируется на основе формы. В нем указываются начальные и конечные даты отчетного периода. Пытаюсь в дефолтном значении в поле с начальной датой сделать так, чтобы по умолчанию стояла дата "Сегодня-7дней". Вбиваю формулу:
@Date(@Year(@Today);@Month(@Today);@Day(@Today)-7). Эта формула не отрабатывает, если сегодня 1-8 число месяца, по всем остальным числам месяца нормально считает. Кто-нибудь знает, как заставить ее корректно работать?
0
sovt
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
29.07.2012, 11:48 25
Eugen
смотри описание @Adjust( dateToAdjust ; years ; months ; days ; hours ; minutes ; seconds ; [DST] )
Она сама считает месяца и годы, при изменении дней

в твоем случае: @Adjust(@today;0;0;-7;0;0;0) или @Adjust(@now;0;0;-7;0;0;0)
0
yukym
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 185
29.07.2012, 12:01 26
Спасибо огромное, что то @Adjust вылетело из головы...
0
yukym
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 185
26.08.2013, 17:16 27
Снова я и снова туплю...

На input validation поля хочу проверить, что введенная дата не больше сегодняшней.
Пробовал и так:


Код
@If(@Text(fldDateIssuance)="";@Return(@Success);
@If(
@Text(fldDateIssuance)>@Text(@Today);@Return(@Failure("Дата выдачи не должна быть позже сегодняшней."));
"")
)
и с @TextToTime и все равно ругается. Как их правильно сравнить?
0
yukym
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 185
26.08.2013, 17:35 28
Может быть есть в формулах что-то похожее на скриптовое TimeDifference method?
0
sovt
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
26.08.2013, 17:43 29
на @ можно просто вычетать кажись. (data1 - data2) > 0
Примерно так, если не ошибаюсь.
0
yukym
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 185
26.08.2013, 17:56 30
"Все страньше и страньше..."(с)

Формулы почему то не видят значения поля с датой. Т.е. если ввести дату в поле и вызвать @prompt, то он будет пуст.
0
sovt
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
26.08.2013, 18:11 31
Третий параметр должен быть текст: @Prompt([ok];"";@Text(<имя поля>))
0
yukym
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 185
26.08.2013, 18:14 32
Так и делаю:

Код
m:=@Today-@TextToTime(fldIssuanceDate);
@Prompt([ok];"";@Text(fldIssuanceDate));
@Prompt([Ok];"";@Text(m))
Первый промпт пуст, второй выдает ноль.
0
motokorry
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 200
26.08.2013, 18:40 33
Ну @Today по любому не может быть пустым, значит поле fldIssuanceDate пустое. Или опечатка в имени поля. Имена полей лучше вообще с формы копировать.
А поле fldIssuanceDate в документе не рич текст?
0
yukym
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 185
27.08.2013, 10:48 34
Цитата Сообщение от garri
Ну @Today по любому не может быть пустым, значит поле fldIssuanceDate пустое. Или опечатка в имени поля. Имена полей лучше вообще с формы копировать.
А поле fldIssuanceDate в документе не рич текст?
Имя поля верное, я его именно копировал. Поле типа Date/Time. То, что документ новый, влияет? Т.е. он еще не сохранялся.


Добавлено: В свойствах формы сейчас проставил галку Automatically refresh fields. Теперь первый промпт выдает введенную дату, а второй говорит, типа неверный тип данных, ожидается текст... а там и так @Text(m)
0
sovt
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
27.08.2013, 10:59 35
Поле Date/Time,следовательно в первой строке надо:


m:=@Today-fldIssuanceDate;
@Prompt([Ok];"";@Text(fldIssuanceDate));
@Prompt([Ok];"";@Text(m))
Результат в секундах
0
yukym
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 185
27.08.2013, 12:39 36
На input validation сделал так:

Код
m:=@Today-fldDateIssuance;

@If(@Text(fldDateIssuance)="";@Return(@Success);
@If(m<0;@Return(@Failure("Введенная дата не должна быть больше сегодняшней"));@Success)
)
Заработало. Всем спасибо.
0
Кирилл Швиб
0 / 0 / 0
Регистрация: 26.06.2006
Сообщений: 143
27.08.2013, 14:25 37
Формулу в студию!
0
27.08.2013, 14:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2013, 14:25

Сортировка дат
Например есть список: &quot;26.08.2010&quot;:&quot;14.09.2010&quot;:&quot;01.10.2010&quot; Понятно что...

Ftsearch И Список Дат
В БД есть документы со списковым полем типа DateTime. Если искать в базе с...

вычитание дат/времени
Всем привет! Возникла необходимость вычислять одну дату из другой (переменные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru