gpt4 book ai didi

delphi - 如何计算两个日期之间的工作日数?

转载 作者:行者123 更新时间:2023-12-03 14:38:01 28 4
gpt4 key购买 nike

我需要计算两个给定日期之间的工作日(工作日)计数。工作日是一周中除周六和周日外的所有日子。我不考虑假期。

如何计算两个日期之间的工作日数?

最佳答案

function BusinessDaysSinceFixedDate ( const nDate : tDateTime ) : integer;
const
Map : array [ -6 .. 6 ] of integer
= ( 0, 0, 1, 2, 3, 4, 5, 5, 5, 6, 7, 8, 9 );
var
X : integer;
begin
X := trunc ( nDate );
Result := 5 * ( X div 7 ) + Map [ X mod 7 ];
end;

function BusinessDaysBetweenDates ( const nStartDate : tDateTime;
const nEndDate : tDateTime ) : integer;
begin
Result := BusinessDaysSinceFixedDate ( nEndDate )
- BusinessDaysSinceFixedDate ( nStartDate );
end;

例程 BusinessDaysSinceFixedDate 计算自固定日期以来的工作日数。具体日期是 1899 年 12 月 25 日星期一,这一点无关紧要。它只是计算已经过去的周数 (X div 7) 并将其乘以 5。然后它添加一个偏移量以根据星期几进行校正。请注意,(X mod 7) 将为负日期返回负值,即 1899 年 12 月 30 日之前的日期。

例程 BusinessDaysBetweenDates 只是调用 BusinessDaysSinceFixedDate 来获取开始日期和结束日期,并从另一个日期中减去一个日期。

关于delphi - 如何计算两个日期之间的工作日数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14845308/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com