有网友在论坛发帖求助《关于Access日期问题》 希望当前日期格式用英文表达,如2017/12/22,表达出来为“22nd Dec 2017”
但是由于英文的基数转换为序数不像中文一样,可以直接几到第几的概念。有1st,2nd,3rd这样的非主流。
小编查了一下资料,发现好像没有直接转换的参数。所以这里只能自定义一个函数来转换
Public Function RadixtoOrdinal(i As Integer)
Dim strOrdinal As String
Dim righti As Integer
If i = 11 Or i = 12 Or i = 13 Then
strOrdinal = i & "th"
Else
righti = Right(i, 1)
Select Case righti
Case 1
strOrdinal = i & "st"
Case 2
strOrdinal = i & "nd"
Case 3
strOrdinal = i & "rd"
Case Else
strOrdinal = i & "th"
End Select
End If
RadixtoOrdinal = strOrdinal
End Function
在报表中引用函数。控件来源=RadixtoOrdinal(Day(Date())) & " " & Format(Date(),"mmm yyyy")
注意,format参数的月份有几种写法:
m : 以没有前导零的数字来显示月 (1 – 12)。如果 m 是直接跟在 h 或 hh 之后,那么显示的将是分而不是月。
mm : 以有前导零的数字来显示月 (01 – 12)。如果m是直接跟在h或hh之后,那么显示的将是分而不是月。
mmm : 以简写来表示月 (Jan –Dec)。
mmmm : 以全称来表示月 (January –December)。
文章发布有点仓促,如有错误,请斧正