Access 2010中计算工作日天数(Access 2010 calculating the nu

2019-10-21 09:03发布

我是新来的Access 2010,并需要获得与扭曲节假日除外然而一个工作周的天数。 我已经能够使用针对工作日的标准VB代码,在互联网上出现,它简单周一的伟大工程 - 周五或周一 - 周六计算。 我的问题是,我还是可以如何操纵这个代码来计算天数,如果周五,周六和周日都算1天?

例如:周二14年11月25日计算的天数到今天。

  1. - 今天的日期=周一,2014年12月1日;
    -Monday,2014年12月1日= 0;
    - 星期日,二零一四年十一月三十日= 3;
    -Saturday,2014年11月29日= 3;
    至周五,2014年11月28日= 3;
    -Thursday,2014年11月27日(节日)= 2;
    -Wednesday,2014年11月26日= 2;
    -Tuesday,2014年11月25日= 1

所以在上面的例子中,天数是3。

Answer 1:

如果您需要考虑法定假日你真的需要使用某种类型的表。 纯算法的方法的问题是难以管理和容易出现故障,这主要是因为

  1. 落在上的固定日期节假日可能在某些其他日期被观察到 。 例如,如果圣诞节恰逢周六那么员工可以得到一个休息日星期五。
  2. 有些节日的日期是难以计算。 特别是, 耶稣受难日被定义(在加拿大这里,至少)为“周五的第一个星期天之前的第一个满月之后的春分后”。

在最简单的形式,在[DatesTable]可能是这个样子:

theDate     dayOff  comment         
----------  ------  ----------------
2014-11-21  False                   
2014-11-22  True    Saturday        
2014-11-23  True    Sunday          
2014-11-24  False                   
2014-11-25  False                   
2014-11-26  False                   
2014-11-27  True    Thanksgiving Day
2014-11-28  False                   
2014-11-29  True    Saturday        
2014-11-30  True    Sunday          
2014-12-01  False                   
2014-12-02  False                   

计数的工作日情节中字和情节中字(含)之间的数字,简直是

SELECT COUNT(*) AS WorkDays 
FROM DatesTable 
WHERE theDate Between #2014-11-25# And #2014-11-30#
    AND dayOff=False;


文章来源: Access 2010 calculating the number of workdays