繁体   English   中英

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

[英]Format to show day of week in month using C# or MonoTouch

我正在尝试在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#中有什么方法可以做到这一点?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM