Искам да изчисля разликата в две дати в Lotusscript. напр. (18.10.2011 - 18.08.2011) = 71 дни
Искам да изчисля 2 разлика в датите в Lotusscript (IBM Lotus Notes 8.5)
Отговори (3)
От помощта на Lotus Designer:
Метод TimeDifference, Намира разликата в секунди между една дата-час и друга.
notesDateTime.TimeDifference( notesDateTime )
Ето фрагмент, който можете да поставите в бутон, за да видите как работи:
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, за да стигнете до там от октомври, трябва да извадите (т.е. отрицателно).
Много зависи от това в какво съхранявате датата. Програмирането на дата е голяма болка в Lotusscript.
Ако използвате обекти NotesDateTime, тогава решението на Jasper е най-доброто, въпреки че се обърквам какво се изважда от какво.
Един прост начин е просто да преобразувате стойностите на елемента дата-час в единични и да извадите. Частта преди десетичната запетая са дните, частта след това са часовете и т.н.