【发布时间】:2015-04-16 02:38:11
【问题描述】:
我有一种情况,我需要在公式字段中计算下个月的特定日期,我必须计算的值是:
-星期几(M、T、W 等) -实例周(每月的第 2 或第 3 周)
我建议了一个 Apex 解决方案,我们将提前一个月设置一个日期变量,计算该月的第一天是星期几,然后循环遍历它,直到我们到达我们选择的“星期几”。那时,我们可以将 7 天或 14 天添加到该值上,这将为我们提供每月第二周或第三周特定日期所需的信息。
唯一的问题是每晚需要检查和更新大约 2000 条记录,而我的公司不愿意让这件事留给每晚的工作来检查和更新该字段。
我一直在查找可以在公式字段中设置的方程式,该公式字段将能够向我显示我们将调用它的“下一个服务日期”,并且公式字段将能够在页面的任何时候计算此日期被查看。 (或为此导出的报告)。
我完全陷入了一个数学方程式,该方程式将使用今天的日期来查找下个月一周中特定日期的第二个或第三个实例。我觉得从研究中可以只用一个方程来做到这一点,但我很清楚。
以前有人做过这样的事吗?任何帮助将不胜感激。
【问题讨论】:
-
我相信您的要求是可能的,但如果某些信息可用,它会更容易。星期几、月份中的某一天、月份和年份是否可作为单独的变量使用?什么编程语言?
-
Edward- 我希望通过他们的公式字段在 Force.com 平台上实现这一点。它们具有返回月份和日期数值的函数,我认为计算出这一点的等式将涉及获取这些日期值的 if 语句。通过存在的字段和当前日期,我会说所有将进入计算的月份和日期选项都可以使用。
-
不幸的是,您还需要知道年份,以便确定 2 月是 28 天还是 29 天。如果您知道当天的星期几,它也会非常有用。 (这可以通过另一个残酷的公式来计算,但如果系统提供它会容易得多。)
-
我对 Force.com 平台一无所知,但我可以在任何具有模数/余数(我知道的大多数语言中的百分比)和无余数整数除法的任何平台上进行纯数学计算(/ 其中两个操作数都是整数)。在整数除法中,3/2 = 1 而不是 1.5。平台有这些功能吗?
-
爱德华——感谢您的回复。我确实有能力向上或向下舍入,或者到我指定的任何最接近的数字。它还有一个 MOD 函数,可以返回余数。我也有能力抢年。这是我用来获得您答案的参考资料:help.salesforce.com/apex/…
标签: date math salesforce formula apex