【问题标题】:LongDayNames deprecated and returns wrong valuesLongDayNames 已弃用并返回错误值
【发布时间】:2013-09-12 04:28:21
【问题描述】:

我试图在 Lazarus Pascal 上理解这一点

注意: dtWeekEnding 的类型为 TDateEdit

ShowMessage( LongDayNames[DayOfTheWeek( dtWeekEnding.Date) ]);

我的预期输出是 dtWeekEnding 中给定值的日期名称。但我不得不提出问题:

  1. 我收到警告说 LongDayNames 已弃用。那我应该用什么?
  2. 返回的日期名称不正确。在(下拉)日历上,它清楚地显示了这一天,但消息框是前一天。

我错过了什么吗?请指教。

编辑:为了它的价值,我尝试了这个:

ShowMessage( LongDayNames[DayOfTheWeek( dtWeekEnding.Date) +1 ]); //Added 1 to the answer.

当我尝试上述更改时,所有日子都正确显示,但不是星期天。周日根本没有出现。例如,选择 9 月 1 日不会显示任何日期名称。

谢谢!

【问题讨论】:

    标签: date lazarus dayofweek weekday


    【解决方案1】:
    1. 在后来的 Delphis 中,这些设置移动到名为“FormatSettings”的 TFormatsettings 记录中。 FPC 多年来一直采用这种结构,并且弃用了旧的(就像最近的 Delphi 版本一样)。

    2. 这是 dayofTHEweek() 与 dayofweek() 对一周的第一天的定义不同。

    dayofweek 帮助中有一个注释,但我现在还添加了来自帮助主题的简短参考和longdaynames,希望能更清楚地说明这一点(将在下一个版本的文档中可见)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-16
      • 2012-07-03
      • 2023-04-05
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 2021-11-09
      • 2019-09-29
      相关资源
      最近更新 更多