将当前日期转换为nth

时间:2018-10-24 15:13:27

标签: crystal-reports

如何将October 24, 2018转换为24th of October, 2018

2 个答案:

答案 0 :(得分:2)

这将要求对显示日期的字段应用自定义样式。要创建此右键,请单击该字段,然后单击“设置字段格式”。在“格式编辑器”的“日期”选项卡上,单击“自定义”按钮。

现在您应该看到“自定义样式”窗口。

在“格式”组中,将“月份”设置为使用月份的长名称。
在“订单”组中,单击DMY的单选按钮。 在“分隔符”组中,单击标记为“第一:”的字段的X-2按钮,然后输入以下公式:

If Right(ToText(Day({GLPREPOST.START_DATE}),0,""),1) = "1" Then
    "st of "
Else If Right(ToText(Day({GLPREPOST.START_DATE}),0,""),1) = "2" Then
    "nd of "
Else If Right(ToText(Day({GLPREPOST.START_DATE}),0,""),1) = "3" Then
    "rd of "
Else 
    "th of "

用数据库中包含您要格式化的日期的字段的引用替换{GLPREPOST.START_DATE}

您还需要在“分隔符”组中为“第二个:”字段输入一个空格。

单击“确定”按钮以保存您的自定义样式。

此时,您的日期应按要求显示。 :)

答案 1 :(得分:1)

我认为您需要一个公式。我不知道是否有可以使用的功能。用英语,您可以执行以下操作:

NumberVar DayIn := Day ({YourTable.YourDate});
Totext (DayIn , 0 )
& (if DayIn in 4 to 20 then 'th' else
if remainder (DayIn , 10) = 1 then 'st' else
if remainder (DayIn , 10) = 2 then 'nd' else
if remainder (DayIn , 10) = 3 then 'rd' else 'th')
& " of "
& Totext ({YourTable.YourDate}, "MMMM, yyyy")