2013-10-07 1 views
6

У меня есть строка, которая имеет короткое название месяца в нем. \Преобразовать строку, содержащую MONTHNAME к Int из MonthDigit

string month = "Jun"; 

Мне нужно, чтобы месяц в цифре от этого названия месяца.

Скажи я это сделать:

int monthInDigit = getMonth(month); 

monthInDigit <-- 6 

Как я могу добиться этого. Если вы не можете получить мой вопрос, пожалуйста, я объясню это правильно.

Thanxx заранее

+0

Я не понимаю. Почему 'monthInDigit' дает' 6'? –

+0

@ SonerGönül, я бы предположил, что июнь - это шестой месяц в году. – Arran

+0

@Arran О, это смысл месяцаInDigit .. Умный :) –

ответ

13
int monthInDigit = DateTime.ParseExact(month, "MMM", CultureInfo.InvariantCulture).Month; 
+0

Зачем U получил null как последний параметр –

+0

Потому что провайдер не важен в этом случае ... –

+0

Хорошо спасибо, это помогло мне –

7

Вы можете разобрать его на DateTime первый:

DateTime dt = DateTime.ParseExact("Jun", "MMM", CultureInfo.InvariantCulture); 
int month = dt.Month; 
if(month < 6) 
{ 
    // do something... 
} 
+1

u again ..wooow awesome :)) – Neel

+0

Thanx для решения –

+0

@MurtazaMunshi: используйте 'CultureInfo.InvariantCulture' вместо' null', если вы хотите, чтобы он работал в любой культуре. –

0

другой путь:

string [] arr= {jun, fab,...}; 

public int getMonth(string month){ 

for(int i = 0 ; i< arr.length ; i++){ 
    if(string[i].Contains(month) || month.Contains(arr[i])) 
    return i+1; 
    } 

return -1;// if month is invalid , return -1 
} 
+0

Этот абсолютно неэффективный чувак. –

Смежные вопросы