0

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

 1st Saturday of the month, February 2, 2013

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

我以前可以通过使用如下格式化程序在 Objective C 中做到这一点:

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

并将“2st”替换为“2nd”,将“3st”替换为“3rd”等,但我一直无法找到“F”字符的替代品。

有没有办法在 C# 中做到这一点?

4

3 回答 3

0

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

于 2013-02-15T19:29:15.350 回答
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

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

于 2013-02-15T19:33:39.560 回答
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;
    }
}
于 2013-02-18T14:52:19.317 回答