从输入的日期算起X个工作日的数量

小家鼠

我有一个Microsoft Access数据库,要求用户输入Date Opened:值。输入后,将触发另一个字段中的计算Deadline (25 WD):这可以通过后面的字段中的以下功能来实现:

=DateAdd("d",25,[Date opened])

但是,我要算的是从输入的日期起算25个工作日Date Opened:我有一张表holidays,其中包含到2020年的英国假期列表。

我如何才能合并为两个(可以这么说),以产生Deadline (25 WD):不计算其中列出的任何日期的有效值holidays

例如,如果输入的日期是2015年1月1日,则该功能将从2015年1月1日起算25个工作日,这意味着它将排除该期间内的所有周末和任何银行假日以及得出的日期值在外地Deadline (25 WD)也将是一个工作日(即不是周末或银行假期)

保罗·弗朗西斯

您可能需要一个UDF来帮助您解决此问题。就像是,

Function addWorkDays(addNumber As Long, Date2 As Date) As Date
'********************
'Code Courtesy of
'  Paul Eugin
'********************

    Dim finalDate As Date
    Dim i As Long, tmpDate As Date
    tmpDate = Date2
    i = 1
    Do While i <= addNumber
        If Weekday(tmpDate) <> 1 And Weekday(tmpDate) <> 7 And _
            DCount("*", "tbl_BankHolidays", "bankDate = " & Format(tmpDate, "\#mm\/dd\/yyyy\#")) = 0 Then i = i + 1
        tmpDate = DateAdd("d", 1, tmpDate)
    Loop

    Do While Weekday(tmpDate) = 1 Or Weekday(tmpDate) = 7 Or _
        DCount("*", "tbl_BankHolidays", "bankDate = " & Format(tmpDate, "\#mm\/dd\/yyyy\#")) <> 0
        tmpDate = DateAdd("d", 1, tmpDate)
    Loop

    addWorkDays = tmpDate
End Function

因此,当您在日期中添加25天时,它将跳过表-中存储的所有周末和银行假日tbl_BankHolidays

? addWorkDays(25, Date())
  25/06/2015 

希望这可以帮助 !

编辑:我添加了另一个循环,以查看结束日期是在银行假日还是周末,如果这样做,它将再增加一天直到达到工作日。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

TSQL日历表,从日期算起10个工作日

来自分类Dev

HTML输入类型=日期工作日

来自分类Dev

HTML输入类型=日期工作日

来自分类Dev

日期+ 7个工作日

来自分类Dev

给定多个工作日作为输入,计算两个日期之间的“实际”天数

来自分类Dev

计算两个日期之间的工作日

来自分类Dev

获取工作日DateTime两个日期的列表

来自分类Dev

可可-计算两个日期之间的工作日

来自分类Dev

PHP 获取两个特定工作日的日期

来自分类Dev

bigquery 从日期减去 3 个工作日

来自分类Dev

计算两个日期之间的特定工作日

来自分类Dev

将15个日期之前的星期六计算为工作日,并跳过其他工作日

来自分类Dev

从特定日期减去工作日

来自分类Dev

SQL触发日期范围与工作日

来自分类Dev

SQL日期差异工作日

来自分类Dev

雪花:仅在工作日添加日期

来自分类Dev

使用日期参数计算工作日

来自分类Dev

SQL日期差异工作日

来自分类Dev

dplyr按工作日汇总日期

来自分类Dev

按工作日更改熊猫日期

来自分类Dev

计算工作日到日期 PHP

来自分类Dev

给出工作日的两个日期之间的日期列表

来自分类Dev

工作日(日期)与当前日期(工作日)比较

来自分类Dev

如何在JavaScript中获取两个不同日期之间的工作日

来自分类Dev

日期的条件格式,比单元格值大3个工作日

来自分类Dev

在linq中获取两个日期之间的工作日计数

来自分类Dev

如何在Java中获取当前日期并添加五个工作日

来自分类Dev

计算两个日期之间的总业务工作日

来自分类Dev

获取下一个工作日的日期