我正在尝试格式化MonoTouch项目中的日期以显示如下字符串:
1st Saturday of the month, February 2, 2013
但我一直无法找到在C#中格式化它的方法。
我以前能够通过使用格式化程序在Objective C中执行此操作:
[dateFormatter setDateFormat:@"F'st' EEEE 'of the month', MMMM d, yyyy"];
并将'2nd'替换为'2nd','3st'替换为'3rd'等,但我无法找到'F'字符的替代品。
有没有办法在C#中执行此操作?
答案 0 :(得分:0)
DateTime.Now.Day / 7 + 1
这样的东西会给你这个数字,然后你添加其余的字符串
答案 1 :(得分:0)
我不知道有任何标准格式说明符可以做到这一点,但计算起来应该相当简单:
DateTime date = DateTime.Now;
int day = date.Day;
int ordinal = (day / 7) + 1;
// if it's the first occurrence, ordinal will be 1, 2nd will be 2, etc
(我没有通过编译器运行检查,但我认为基本的想法有效)
答案 2 :(得分:0)
之前的两个答案很接近,但两个都在同一个地方出错。以下是我用于获取当月某一天的出现的代码:
int dowin = (SelectedDate.Day - 1) / 7 + 1;
switch(dowin){
case 1:{
return "1st" + dateString;
}
case 2:{
return "2nd" + dateString;
}
case 3:{
return "3rd" + dateString;
}
case 4:{
return "4th" + dateString;
}
case 5:{
return "5th" + dateString;
}
}