使用C#或MonoTouch显示月份中星期几的格式

本文关键字:格式 MonoTouch 显示 使用 | 更新日期: 2023-09-27 17:59:29

我正在尝试格式化MonoTouch项目中的日期,以显示字符串,如:

 1st Saturday of the month, February 2, 2013

但我一直找不到用C#格式化它的方法。

我之前已经能够在目标C中使用格式化程序来做到这一点,比如:

 [dateFormatter setDateFormat:@"F'st' EEEE 'of the month', MMMM d, yyyy"];

将"2st"替换为"2nd",将"3st"替换为"3rd",等等,但我一直找不到替换"F"字符的方法。

在C#中有什么方法可以做到这一点吗?

使用C#或MonoTouch显示月份中星期几的格式

类似DateTime.Now.Day / 7 + 1的东西会给你这个数字,然后你添加字符串

的其余部分

我不知道有任何标准格式说明符可以做到这一点,但计算起来应该相当简单:

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

(我还没有通过编译器来检查,但我认为基本想法是可行的)

前面的两个答案很接近,但在同一位置都有错误。这是我用来获取一个月中一周中某一天发生的代码:

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;
    }
}