Вытянуть только время из даты

xKlonx

Well-Known Member
Lotus team
10.09.2009
410
0
#1
Здраствуйте! Есть у меня диалог боксик в котором я выбираю дату и время, потом c помощью
Код:
getComponent("inputDate").getValue()
беру выбранное значение,в итоге получаю дату и время, @date() вытягиваю только дату - одно правильное значение есть.Далее нужно из другого поля вытянуть только время
Код:
getComponent("inputTime").getValue()
- опять же получаю дату и время, с помощью @Time() пытаюсь вытащить время в итоге получаю что-то типа 01.01.1900 7:45, тоесть @Time в Xpages неправильно работает.Народ может кто посоветует как вытянуть только время и чтобы оно имело тип DataTime, Text не подходит.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 491
367
#2
берем стринг и rightback до пробела
либо получаем NotesDateTime и из него дергаем время
 

xKlonx

Well-Known Member
Lotus team
10.09.2009
410
0
#3
lmike
стринговое время получить не проблема,а вот конвертнуть его пока непонятно как в дататайм
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 491
367
#4
если нужно получать именно тип дата, но содержащее тайм часть NotesDatetime.SetAnyData
тока не понятно - что потом с этим делать буите :what?:?
цель какова - получения таймовой части?
если операции сравнения - надоть сёрамно юзать NotesDatetime
 

xKlonx

Well-Known Member
Lotus team
10.09.2009
410
0
#5
3 поля типа дататайм, в одно ввожу дату,в другое время, а третье компутед которое берет значение из первого поля и второго.Так вот в первом поле получаю дату типа дататайм, во втором же нужно получит только время, но оказалось что это не так просто ибо получаю его в текстовом виде,а нужно дататайм, конверту пока не поддается. Вообще то что нужно было я решил, пришлось убрать формулу в третьем компутед поле и передавать 2 значения сразу в третье поле, но интерес остался каким же образом получить время в xpages и передать в необходимом типе.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 491
367
#6
не понятен смысл вашего понятия "время" ибо - это д.б. число либо объект отражающий время в общем смысле
для того чтобы:
-сравнивать
-производить увеличение/уменьшение
дык ежели получить тайм - это и будет величина приведённая к 0-вой дате
и него нормально будет вывести часы/минуты/секунды/строку

вам, из вышеперечисленного - что нужно-то было?
 

xKlonx

Well-Known Member
Lotus team
10.09.2009
410
0
#7
вам, из вышеперечисленного - что нужно-то было?
передать в толстый клиент тайм(время 8:40:00) с типом дататайм, тривиальная задача но с xpages в итоге передавал только в текстовом виде.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 491
367
#8
ну тогда и передавайте notesdatetime с setanydata (но это, фактически, будет 1900 год)
 

VladSh

начинающий
Lotus team
11.12.2009
1 248
2
#9
Если на @-формулах, то для обычного Notes я бы
из первого поля получил @Year, @Month, @Day
из второго @Hour, @Minute, @Second
слепил бы в кучу: @Time(year; month; day; hour; minute; second).
На LS есть аналоги.
 

xKlonx

Well-Known Member
Lotus team
10.09.2009
410
0
#10
VladSh
Ну впринципе я так и сделал, на собаках только в икспейджах
Код:
var field1 = getComponent("inputDate").getValue()
var field2 = getComponent("inputTime").getValue()

DocSource.replaceItemValue("field3", @Date( @Year(field1),@Month(field1),@Day(field1),@Hour(field2),@Minute(field2),@Second(field2)))
DocSource.save()
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 491
367
#11
Если на @-формулах, то для обычного Notes я бы
из первого поля получил @Year, @Month, @Day
из второго @Hour, @Minute, @Second
слепил бы в кучу: @Time(year; month; day; hour; minute; second).
На LS есть аналоги.
ведь нет отдельного формата time, есть общий datetime
-взять первое - установить anydate, тоже сделать со вторым полем
-посчитать разницу
-прибавить разницу к первому полю

Добавлено: вот так (в обычных собаках) я делаю:
v:=@If(@IsTime(evtStartT);
@TimeMerge(evtStartD;evtStartT);
evtStartD);
v
Добавлено: и хэПагес с датасорсом этой формы - работает без напильника