2012-03-06 2 views
6

Мне нужно получить год, я использую формат YYYY и месяц MM и так далее. Я смотрю, есть ли формат, чтобы получить номер недели в году.Неделя число год в формате даты

Дата, которую я использую в качестве примера, это 2008-03-09 16:05:07.000, и я хотел бы узнать номер недели, который в этом случае равен 11. Есть ли способ получить программный код 11?

ответ

21

Там нет формата, который обеспечивает НомерНедели, но вы можете получить его таким образом легко:

System.Globalization.CultureInfo cul = System.Globalization.CultureInfo.CurrentCulture; 
int weekNum = cul.Calendar.GetWeekOfYear(
    DateTime.Now, 
    System.Globalization.CalendarWeekRule.FirstFourDayWeek, 
    DayOfWeek.Monday); 

Чтобы ответить на комментарий как получить четверть года данного DateTime:

int quarter = (int)((DateTime.Now.Month - 1)/3) + 1 
+0

Благодарим за отзыв. Да, я пробовал то же самое, что было доступно на одном из сообщений. Теперь я попробовал аналогичную вещь для GetDayofWeek, как это. System.Int32 dayofweek = ((Int32) CultureInfo.CurrentCulture.Calendar.GetDayOfWeek (dt)); но когда я пытаюсь заменить строку, которую я ввожу, я получаю сообщение об ошибке «Строка ввода не была в правильном формате». Это мой код для замены: lformat = new stringbuilder (dt.lower()). Заменить (" dw ", dayofweek.ToString()). Любые предложения по этому поводу. Также есть способ найти ежеквартальный номер года. – user1031746

+0

@ user1031746: отредактировал мой ответ, чтобы показать вам, как вы получаете четверть года. –

+0

Да еще раз спасибо. Я использую «string quarter = (((dt.Month - 1)/3) + 1) .ToString();" но ваш кажется более простым, чем мой. – user1031746