gpt4 book ai didi

delphi - 该月的第一个[星期一]、该月的第二个[星期四]等 Delphi

转载 作者:行者123 更新时间:2023-12-03 14:46:02 31 4
gpt4 key购买 nike

使用 Delphi,我需要一个函数来评估当前日期并查看它是否是例如该月的第三个星期日等。

伪代码:

function IsFirst(const CurrentDateTime: TDateTime; const Day: Word): Boolean;
/// Day can be 1-7 (monday to sunday)
begin
Result:= ??
end;

需要另一个函数来计算该月的第二个、第三个、第四个和最后一个。 DateUtils 似乎没有这样的东西。有什么想法吗?

最佳答案

这个功能正是您所需要的:

function IsFirst(const DateTime: TDateTime; const Day: Word): Boolean;
begin
Result := (DayOfTheWeek(DateTime)=Day) and
InRange(DayOfTheMonth(DateTime), 1, 7);
end;

第二次出现的等效函数是:

function IsSecond(const DateTime: TDateTime; const Day: Word): Boolean;
begin
Result := (DayOfTheWeek(DateTime)=Day) and
InRange(DayOfTheMonth(DateTime), 8, 14);
end;

我相信您可以填写第三、第四和第五项的详细信息。您可能更喜欢编写一个像这样的通用函数:

function IsNth(const DateTime: TDateTime; const Day: Word; 
const N: Integer): Boolean;
var
FirstDayOfWeek, LastDayOfWeek: Integer;
begin
LastDayOfWeek := N*7;
FirstDayOfWeek = LastDayOfWeek-6;
Result := (DayOfTheWeek(DateTime)=Day) and
InRange(DayOfTheMonth(DateTime), FirstDayOfWeek, LastDayOfWeek);
end;

关于delphi - 该月的第一个[星期一]、该月的第二个[星期四]等 Delphi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8847693/

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