vbscript - 具有给定日期的每月生成
问题描述
努力实现
我在我的代码上确定了一个日期,比如 31-01-2019。然后每天我都会执行我的代码,但只在 28-02-2019/29-02-2020、31-03-2019、30-04-2019... 我希望执行代码。这有点像每月一代。另外,如果固定日期是30-01-2019,我希望在28-02-2019/29-02-2020、30-03-2019、30-04-2019执行代码...
例如
我做了什么
我已经关注了问题VBScript DateDiff month,并尝试了以下代码,但它不起作用。
如果我有一个日期,比如 DateAdd 2010 年 1 月 31 日
endFeb = DateAdd("m",1,"31-Jan-10")
endMar = DateAdd("m",1,endFeb)
endApr = DateAdd("m",1,endMar)
结果
endFeb: 28/02/2010
endMar: 28/03/2010
endApr: 28/04/2010
我想要的是
endFeb: 28/02/2010
endMar: 31/03/2010
endApr: 30/04/2010
代码
sFixedDate = "2019-01-31" '==== Fixed
sProcessDate = "2019-02-28" '==== Changes daily
d1 = CDate(sFixedDate)
d2 = CDate(sProcessDate)
diff = DateDiff("m", d1, d2)
If request("btnProcess") <> "" Then
If diff Mod 1 = 0 Then '=== Not as simple as I thought
'=== Trying to do monthly GENERATION.
'===Excecute the CODE
End If
End If
解决方案
基本上,你想在每个月的最后一天运行一些东西。这意味着后天将是一个不同的月份,因此您可以执行以下操作来计算下个月的最后一天:
today = Date
tomorrow = today + 1
If request("btnProcess") <> "" Then
If Month(today) <> Month(tomorrow) Then
endNextMonth = DateAdd("m", 1, tomorrow) - 1
End If
End If
要获取任何给定月份的最后一天,请调整添加到明天日期的月数。
以上假设您在一个月的最后一天进行计算。如果您想在一个月的任何一天计算任何给定月份的最后一天,请参阅Ekkehard Horner 的回答。
推荐阅读
- java - 如何在分布式环境中使用 Spring Aggregator?
- android - 如何将 2 个数据绑定添加到一个活动
- javascript - 我如何从 div 获取所有输入,除了 jspdf 的 empry 值?
- mongodb - 在副本集 mongodb 中添加新成员
- python - Erlang like msgbox 事件循环
- javascript - Selenium WebDriver — 使用 DevTools 打开到控制台面板启动 Chrome
- javascript - 如何通过下划线组合两个数组
- flask - 如何根据下拉框选择更改 Flask-SQLAlchemy 中的 order_by 子句?
- javascript - 在 Vue 中声明变量有什么区别?
- python-3.x - 使for循环的执行次数取决于变量