1

我正在做一个代理,以便在今天前 2 天延迟发送通知,周日是非工作日。因此,如果今天是星期一,代理将发送上周五的迟到,如果是星期二,它将发送上周六,如果是星期三,它将发送星期一等等。我已经知道如何获得今天的日期。我如何在今天前 2 天获得?

Dim tdy, dayToUse
Dim intl As NotesInternational
Set intl = ss.International
tdy=intl.Today
4

2 回答 2

4

您可以执行以下简单操作来获取特定日期:

dayToUse = DateNumber( Year( Now ), Month( Now ), Day( Now ) - 2 )

您还可以使用 NotesDateTime 对象:

Dim dateTime As New NotesDateTime( "Today" )
Call dateTime.AdjustDay( -2 )

希望这可以帮助你。

于 2012-07-06T04:39:23.510 回答
2

基于@Per Henrik Lausten 的回应:

为了排除星期日,您可以使用工作日功能。它是 LotusScript 语言的内置函数,而不是 NotesDateTime 类的方法。它采用 LotusScript 日期作为输入,而不是 NotesDateTime。所以你可能想做这样的事情:

Dim dateTime As New NotesDateTime( "Today" )
Dim day as variant
dim adjustment as integer

day = CDat(dateTime.dateOnly)
if Weekday(day) = 2 or Weekday(day) = 3 then ' Monday or Tuesday
   adjustment = -3
else
   adjustment = -2 ' any other day 
end if

Call dateTime.AdjustDay( adjustment )

上面的代码对于 Today = Sunday 没有特殊情况。我不清楚您是否可以忽略该案例或做一些特别的事情。

于 2012-07-06T14:35:39.023 回答