2013-10-07 14 views
6

Ho una stringa che ha nome breve mese in esso. \Convertire una stringa contenente monthName a INT MonthDigit

string month = "Jun"; 

Ho bisogno di mese in cifre da questo nome mese.

dire fare questo:

int monthInDigit = getMonth(month); 

monthInDigit <-- 6 

come posso raggiungere questo obiettivo. Se non riesci a ottenere la mia domanda piace commento lo spiegherò proprly.

Thanxx in anticipo

+0

Non capisco. Perché 'monthInDigit' dà' 6'? –

+0

@ SonerGönül, suppongo che June sia il sesto mese dell'anno. – Arran

+0

@Arran Oh, questo è il significato di monthInDigit .. Clever :) –

risposta

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

Perché hai passato null come ultimo parametro –

+0

Perché il provider non è importante in questo caso ... –

+0

Ok grazie, questo mi ha aiutato –

7

È possibile analizzare in un primo DateTime:

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

di nuovo ..wooow awesome :)) – Neel

+0

Grazie per la soluzione –

+0

@ MurtazaMunshi: Usate 'CultureInfo.InvariantCulture' invece di' null' se volete che funzioni in qualsiasi cultura. –

0

un altro modo:

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

Questo è un tipo totalmente inefficiente. –

Problemi correlati