我正在使用此表达式通过rdlc报告在文本框中显示当前日期。
“ 2018年8月22日”获得此输出的表示是什么?
提前谢谢!
答案 0 :(得分:1)
我不相信有一种内置方法来获取一天的序数字符串(“ st”,“ nd”,“ rd”和“ th”),但是您可以轻松编写一种方法来实现这一点,根据一些众所周知的规则。
下面是一个示例,该示例接受一个整数并以序数(例如“ 1st”,“ 2nd”,“ 3rd”,“ 4th”)返回该整数的字符串值:
private static string GetNumberWithOrdinalIndicator(int number)
{
switch (number)
{
// Special cases for 11, 12, and 13
case 11: case 12: case 13:
return number + "th";
default:
switch (number % 10) // Last digit of number
{
case 1:
return number + "st";
case 2:
return number + "nd";
case 3:
return number + "rd";
default:
return number + "th";
}
}
}
现在该方法已经完成,我们可以创建另一个使用日期部分构造您的自定义日期字符串的方法:
/// <summary>
/// Returns a custom date string, like "22nd day of August 2018"
/// </summary>
/// <param name="date">The date to use</param>
/// <returns>The custom formatted date string</returns>
private static string GetCustomDateString(DateTime date)
{
return $"{GetNumberWithOrdinalIndicator(date.Day)} day of {date.ToString("MMMM yyyy")}";
}
最后,在使用中,它可能看起来像:
private static void Main()
{
var todaysCustomDateString = GetCustomDateString(DateTime.Today);
Console.WriteLine($"Today is the {todaysCustomDateString}");
GetKeyFromUser("\nDone! Press any key to exit...");
}
哪个会输出: