我已经到处寻找这个解决方案,但找不到它
DateTime now=DateTime.Now;
我想把它转换成
18th March
当前我正在使用
MessageBox.Show(DateTime.Now.ToString("d MMMM"));
显示
3月18日。
对于1,它应该显示第一个
2-2nd
3-3rd
4-4th
解决方案吗?
您可能需要使用这样的函数,
static string ToEnglishOrdinal (int number) {
if ((number % 100 < 10) || (number % 100 >= 14)) {
switch (number % 10) {
case 1: {
return number.ToString () + "st";
}
case 2: {
return number.ToString () + "nd";
}
case 3: {
return number.ToString () + "rd";
}
}
}
return number.ToString () + "th";
}
像这样的东西会帮助你:(未经测试的想法)
DateTime dt = DateTime.Now;
int day = dt.Date.Day % 10;
MessageBox.Show(dt.ToString("d" + ((day == 1) ? “st” : (day == 2) ? “nd” : (day == 3) ? “rd” : (day == 4) ? “th” : “th”) + "MMMM"));