我想知道是否有人可以帮助我,为什么以下代码的标题在13个月内没有正确创建它们。我想将git reset --hard <my_hash_of_last_commit_on_remote_branch>
ActivityRecord not found
......添加到Jan(LY)
。
请参阅下面的标题代码,
Feb(LY)
答案 0 :(得分:2)
我可以先建议您将月份名称数组更改为常量:
const
MonthNames: array[1..12] of string = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
接下来我建议进行一些更改,以避免13个月的硬编码时间跨度,因为正如您现在所经历的那样,需求会发生变化,硬编码的东西总是比变量更难改变。
声明一个变量,例如MonthSpan: integer
表示应该包括多少个月(将来可能会有3个月,6个月等替代时间跨度的新要求)。同时使用名为Heading1, Heading2 ...
的动态数组替换所有Headings
变量:
Monthspan: integer;
Headings: array of string;
现在我只是在开头初始化
Monthspan := 13;
SetLength(Headings, Monthspan);
您之前已经计算过StartDate: TDate
所以使用它和现有变量M
我们现在可以编写一个简单的循环来获取标题:
M := MonthOf(StartDate);
for i := 0 to MonthSpan-1 do
begin
Headings[i] := MonthNames[(M + i) mod 12];
Memo1.Lines.Add(Headings[i]);
end;
MonthOf()
是单位System.DateUtils
中的一项功能。
以上内容会替换Function MonthCalc()
以及//Headings
评论下方的所有代码。在您的代码的其他地方,您使用过的地方,例如Heading1
你现在使用标题[0](动态数组总是从0开始索引)等。
我不确定HArray[]
的目的是什么,但不需要确定标题。