Искам да изчисля 2 разлика в датите в Lotusscript (IBM Lotus Notes 8.5)

Искам да изчисля разликата в две дати в Lotusscript. напр. (18.10.2011 - 18.08.2011) = 71 дни


person Gaurav Sotani    schedule 18.10.2011    source източник
comment
Скриптът Lotus е вариант на BASIC, така че маркерът на javascript е неподходящ.   -  person RobG    schedule 18.10.2011


Отговори (3)


От помощта на Lotus Designer:

Метод TimeDifference, Намира разликата в секунди между една дата-час и друга.

notesDateTime.TimeDifference( notesDateTime )
person Jasper Duizendstra    schedule 18.10.2011
comment
Това може да стане неудобно, когато са включени промени в DST, освен ако не използвате .SetAnyTime на обектите NotesDateTime, преди да направите .TimeDifference(). - person Stan Rogers; 28.10.2011

Ето фрагмент, който можете да поставите в бутон, за да видите как работи:

Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace   
Dim uidoc As NotesUIDocument        
Dim doc As NotesDocument            
Dim startDT As New NotesDateTime("")
Dim endDT As New NotesDateTime("")
Dim diff As Long

Set uidoc = workspace.CurrentDocument   
Set doc = uidoc.Document        

Set startDT = doc.getFirstItem("StartDate").dateTimeValue
Call startDT.SetAnyTime 
Set endDT = doc.GetFirstItem("ReturnDate").dateTimeValue
Call endDT.SetAnyTime   
diff = startDT.TimeDifference(endDT)    
Msgbox Cstr(diff)   
End Sub

Ето една таблица, която поддържам, за да ми помогне да се справя с числата:

<table>
  <tr>
    <th>startDT</th>
    <th>endDT</th>
    <th>Result</th>
  </tr>
  <tr>
    <td>June</td>
    <td>March</td>
    <td>Positive</td>
  </tr>
  <tr>
    <td>June</td>
    <td>October</td>
    <td>Negative</td>
  </tr>
</table>

Ако март е 3, трябва да добавите (т.е. положително), за да стигнете до юни, което е 6. Ако юни все още е 6, за да стигнете до там от октомври, трябва да извадите (т.е. отрицателно).

person Brian Moore    schedule 21.05.2015

Много зависи от това в какво съхранявате датата. Програмирането на дата е голяма болка в Lotusscript.

Ако използвате обекти NotesDateTime, тогава решението на Jasper е най-доброто, въпреки че се обърквам какво се изважда от какво.

Един прост начин е просто да преобразувате стойностите на елемента дата-час в единични и да извадите. Частта преди десетичната запетая са дните, частта след това са часовете и т.н.

person Andrew Magerman    schedule 13.01.2015