Я хочу рассчитать разницу в 2 даты в Lotusscript (IBM Lotus Notes 8.5) - PullRequest
0 голосов
/ 18 октября 2011

Я хочу вычислить разницу двух дат в Lotusscript. например (18.10.2011 - 18.08.2011) = 71 день

Ответы [ 4 ]

5 голосов
/ 18 октября 2011

Из справки Lotus Designer:

Метод TimeDifference Находит разницу в секундах между датой и временем.

notesDateTime.TimeDifference( notesDateTime )
1 голос
/ 18 октября 2011
d1 = DateNumber(2011,10,18)
d2 = DateNumber(2011,8,18)

d1 = d1 - d2
MessageBox d1
0 голосов
/ 22 мая 2015

Вот фрагмент, который вы можете вставить в кнопку, чтобы увидеть, как он работает:

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, чтобы попасть в октябрь, вы должны вычесть (т.е. отрицательный).

0 голосов
/ 13 января 2015

Это очень сильно зависит от того, в чем вы храните дату. Программирование даты - большая проблема в Lotusscript.

Если вы используете объекты NotesDateTime, то решение Jasper является лучшим, хотя я получаюзапутанный относительно того, что вычтено из чего.

Простой способ - просто преобразовать значения элемента даты и времени в одиночные, и вычесть.Часть до десятичной точки - дни, часть после - часы и т. Д ...

...