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

时间:2013-02-15 19:22:33

标签: 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'替换为'2nd','3st'替换为'3rd'等,但我无法找到'F'字符的替代品。

有没有办法在C#中执行此操作?

3 个答案:

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