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

使用C#或MonoTouch显示月内星期几的格式,c#,xamarin.ios,date-format,C#,Xamarin.ios,Date Format,我正在尝试格式化MonoTouch项目中的日期,以显示如下字符串: 1st Saturday of the month, February 2, 2013 但我一直无法找到一种用C#格式化它的方法 我以前能够在Objective C中通过使用以下格式化程序来实现这一点: [dateFormatter setDateFormat:@"F'st' EEEE 'of the month', MMMM d, yyyy"]; 并用'2nd'替换'2st','3st'替换'3rd',等等,但我一直找

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

 1st Saturday of the month, February 2, 2013
但我一直无法找到一种用C#格式化它的方法

我以前能够在Objective C中通过使用以下格式化程序来实现这一点:

 [dateFormatter setDateFormat:@"F'st' EEEE 'of the month', MMMM d, yyyy"];
并用'2nd'替换'2st','3st'替换'3rd',等等,但我一直找不到'F'字符的替代品


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

类似于
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;
    }
}

请不要在问题中回答您的问题,而是添加一个答案。谢谢