Тупой вопрос

  • Автор темы Guest_lamer_*
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_lamer_*

#1
Товарищи, подскажите пожалуйсто как в lotusScript сложить время....
есть набор документов, содержащих хронометраж, так нужно сложить этот хронометраж....
Пожалуйсто помогите.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#2
Класс NotesDateTime.
Методы: AdjustDay, AdjustHour, AdjustMinute, AdjustMonth, AdjustSecond, AdjustYear.
 
G

Guest_Lamer_*

#3
<!--QuoteBegin-Medevic+26:01:2006, 07:18 -->
<span class="vbquote">(Medevic @ 26:01:2006, 07:18 )</span><!--QuoteEBegin-->Класс NotesDateTime.
Методы: AdjustDay, AdjustHour, AdjustMinute, AdjustMonth, AdjustSecond, AdjustYear.
[snapback]29801" rel="nofollow" target="_blank[/snapback]​
[/quote]
Да как мне зразу всё суммировать... формат 00:13:23... тоесть сразу, секунды, минуты, и часы.... а тут операции над минутами, секундами и часами отдельно.....
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#4
<!--QuoteBegin-Guest_Lamer_*+26:01:2006, 08:51 -->
<span class="vbquote">(Guest_Lamer_* @ 26:01:2006, 08:51 )</span><!--QuoteEBegin-->а тут операции над минутами, секундами и часами отдельно.....
[snapback]29803" rel="nofollow" target="_blank[/snapback]​
[/quote]
Это операции не над минутами, секундами и часами, а операции над датой.
Последовательно запусти AdjustSecond, AdjustMinute и AdjustHour.
 
G

Guest_Lamer_*

#5
<!--QuoteBegin-Medevic+26:01:2006, 08:06 -->
<span class="vbquote">(Medevic @ 26:01:2006, 08:06 )</span><!--QuoteEBegin-->Это операции не над минутами, секундами и часами, а операции над датой.
Последовательно запусти AdjustSecond, AdjustMinute и AdjustHour.
[snapback]29804" rel="nofollow" target="_blank[/snapback]​
[/quote]
То есть что-то

Dim dateTime As New NotesDateTime( "00:01:32" )
Call dateTime.AdjustSecond( 00:03:34)
Call dateTime.AdjustMinute( 00:03:34)
Call dateTime.AdjustHour( 00:03:34)

? разве правильно? :-\
 
N
#6
Для: Guest_lamer_*

Я не понимаю, как можно складывать время. По-моему тебе нужно узнать разницу в часах (минутах, секундах) между начальной датой и конечной датой определенного процесса. Тогда можно узнать количество времени, затраченное на выполнение этого процесса. Если так, то тебе нужно пользоваться методом TimeDifference класса NotesDateTime. Иначе я не понимаю, что можно получить, если, например, выполнить операцию: 08/18/2005 01:36:22 PM + 08/20/2005 04:22:47 PM.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#7
<!--QuoteBegin-Guest_Lamer_*+26:01:2006, 09:21 -->
<span class="vbquote">(Guest_Lamer_* @ 26:01:2006, 09:21 )</span><!--QuoteEBegin-->Dim dateTime As New NotesDateTime( "00:01:32" )
Call dateTime.AdjustSecond( 00:03:34)
Call dateTime.AdjustMinute( 00:03:34)
Call dateTime.AdjustHour( 00:03:34)

? разве правильно? :-\
[snapback]29807" rel="nofollow" target="_blank[/snapback]​
[/quote]
Попробуй так:
Call dateTime.AdjustSecond(34)
Call dateTime.AdjustMinute(3)
Call dateTime.AdjustHour(0)

Кстати, в хелпе есть хорошие примеры. Половина вопросов сразу отпадает.

Для: nor
Складывать время, а не даты. Например, я таким образом вычислял общее время отсутствия человека за период.
 
G

Guest_Lamer_*

#8
Короче, смысл таков...
Есть несколько файлов. каждый из которых имеет свой хронометраж продолжительносьти. нужно пощитать, их общее продолжительность.
Так например у меня есть 4 файла по 00:00:30 их итог будет 00:02:00

Хронометраж у каждого файла разный, а сами файлы тоже не всегда одинковые, да к томуже их может быть до несколько сто...
Может как-нибудь дату перевести в число и сложить, а потом обратно в дату.
 
D

Domino6

#9
<!--QuoteBegin-Guest_Lamer_*+26:01:2006, 10:18 -->
<span class="vbquote">(Guest_Lamer_* @ 26:01:2006, 10:18 )</span><!--QuoteEBegin-->Может как-нибудь дату перевести в число и сложить, а потом обратно в дату.
[snapback]29815" rel="nofollow" target="_blank[/snapback]​
[/quote]
Работай с датой и увеличивай ее а потом вычти из полученой начальную
Алгоритм
Начальная датавремя 01.01.1980 00:00:00
К ней делаеш ajust нужное1 количество раз
Получиш Конечную дату время 03.01.1980 01:12:01

Если сделать timediference то пулучиш разницу в секундах
или береш части от полученной
Год 1980-1980=0
Месяц 1-1=0
День 3-1=2
Час 1-0=1
Минуты 12-0=12
Секунды 1-0=1
ИТОГО имем всего потрачено времени
0 лет 0 месяцев 2 дня 1 час 12 минут 1 секунда
 
G

Guest_Lamer_*

#10
Спасибо всем, кто пытался помоч, я решил это так:

Код:
Dim allhour As Integer
Dim hours As Integer
Dim allminut As Integer
Dim minut As Integer
Dim allsecond As Integer
Dim seconds As Integer

hours=Cint(Mid(doc.xrono(0), 1, 1))
minut=Cint(Mid(doc.xrono(0), 3, 2))
seconds=Cint(Mid(doc.xrono(0), 6, 2))
 
allhour = allhour + hours
allminut = allminut + minut
allsecond = allsecond + seconds
 
................................................................................
....

allhour = allhour + (allminut \ 60)
allminut = allminut + (allsecond \ 60)
allsecond = allsecond Mod 60

curdoc.Second = allsecond
curdoc.minute = allminut
curdoc.hour = allhour
 
Статус
Закрыто для дальнейших ответов.