如何计算xpages中的天数

时间:2012-12-04 07:37:06

标签: xpages

我是XPage应用程序的天真开发人员之一。我拿起了XPages,因为我发现它们真的很有趣,可以构建我们想要的东西。

这是我几天来工作的一个问题,但无法克服它。

在我的请假申请中,我有两个日期字段,leaveFrom& leaveTill和一个计算编辑框,我将显示否。天(noDays)动态地,即上面两个离开日期字段的差异。和 我无法做这么简单的事情。

我使用Lotus 8.5.3创建此应用程序。我看到了一些方法,如getcomponent("").setvalue()getvalue()。但这两种方法在8.5.3中不可用。我使用这些方法时总是会出错。我尝试在CSJS上使用getComponent但是没有成功。

我也尝试过使用其他脚本方法,我可以创建后端文档但是我的当前xpage上没有显示值。

请告诉我正确的路径。

3 个答案:

答案 0 :(得分:4)

您可以使用以下XSnippet来比较日期(从而也计算两个日期之间的天数):http://openntf.org/XSnippets.nsf/snippet.xsp?id=compare-dates。我希望您可以将此作为您具体案例的输入。

关于getComponent(“”)。getValue()和.setValue()。它们当然也可以在8.5.3中使用。请记住,XPages区分大小写。

答案 1 :(得分:2)

代码无效,因为Java日期的方法 timeDifference 不存在:

var difference = endDate.timeDifference(startDate);

您必须先将其转换为 NotesDateTime

var difference = null; 
try{
    var nDateStart = session.createDateTime( startDate );
    var nDateEnd = session.createDateTime( endDate );

    difference = nDateEnd.timeDifference(nDateStart); 
    difference = (Math.floor(difference/86400)) + 1;
}catch(e){return e}

difference

答案 2 :(得分:0)

  

感谢您的解释性视频,我从他们那里学到了很多东西。

9中的注释? :)

回到你的问题。

如果两个字段都是DATETIME格式,那么您可以执行以下操作。

(endDate - startDate) / (24*60*60);