2013-05-17 16 views
12

Sto provando a convertire la variabile timespan in una variabile intera usando 'parse'. Ottengo un errore che dice:come cambiare la variabile di intervallo in un tipo intero?

eccezione Format è stata gestita: stringa di input non era in formato corretto

Questo è il codice è avere:

private void dateTimePicker4_ValueChanged(object sender, EventArgs e) 
    { 
     TimeSpan t = dateTimePicker4.Value.ToLocalTime() - dateTimePicker3.Value.ToLocalTime(); 
     int x = int.Parse(t.ToString()); 
     y = x; 
    } 

Il mio obiettivo è quello di visualizzare questo il cambiamento nel tempo per due timepicker, dinamicamente in una casella di testo, vale a dire, la differenza in minuti tra di loro dovrebbe essere visualizzata automaticamente in una casella di testo.

+0

Questo in una domanda terribile. Non la domanda in sé, solo che stai cercando di analizzare il valore di 'ToString'. Hai bisogno di abituarti a cercare le proprietà e i metodi esistenti che potrebbero già fare ciò che vuoi. Più spesso no, la funzionalità di solito esiste già, da qualche parte – musefan

+0

grazie, lo terrò a mente. –

risposta

22

la differenza di minuti tra di loro deve essere visualizzata automaticamente in una casella di testo .

Invece dell'analisi utilizzare la proprietà TimeSpan.TotalMinutes.

t.TotalMinutes; 

la proprietà è di tipo doppio, se non vi resta che parte intera allora si può fare:

int x = (int) t.totalMinutes; 
+0

cosa succede se la differenza è maggiore di un Int32 es .: diff. tra l'inizio del tempo e ora? –

+0

@SrivathsaHarishVenkataramana, usa 'long'. Il punto era prendere la parte intera del numero ... – Habib

4
private void dateTimePicker4_ValueChanged(object sender, EventArgs e) 
    { 
     TimeSpan t = dateTimePicker4.Value.ToLocalTime() - dateTimePicker3.Value.ToLocalTime(); 
     int x = int.Parse(t.Minutes.ToString()); 
     y = x; 
    } 

Hai provato a cambiarlo con int x = int.Parse(t.Minutes.ToString());?

Da: http://msdn.microsoft.com/en-us/library/system.timespan.aspx