Sfruttare i nuovi overload di TimeSpan.From* per creare timespan usando numeri interi

di Stefano Mostarda, in .NET Framework,

La classe TimeSpan ha sempre avuto metodi From* per la creazione di un oggetto TimeSpan utilizzando un double come parametro di input. Tuttavia, double è un formato a virgola mobile e questo può causare una errori in fase di creazione dell'ggetto TimeSpan. Prendiamo come esempio la seguente riga di codice.

TimeSpan.FromSeconds(23.455);


Questo codice vuole è creare un'istanza di TimeSpan che rappresenta 23 secondi e 455 millesimi, ma in realtà il risultato è un'istanza che rappresenta 23 secondi e 4549999 millisecondi.
Per risolvere questo problema, .NET 9 introduce nuovi overload che permettono di creare oggetti TimeSpan partendo da int invece che da double. Questi overload sono FromDays, FromHours, FromMinutes, FromSeconds, FromMilliseconds e FromMicroseconds.

Questi overload accettano un primo parametro obbligatorio che rappresenta il valore inizialre da cui creare l'istanza (il primo parametro di FromDays è il numero di giorni, il primo parametro di FromHours è l'ora e così via), e parametri successivi, opzionali, che rappresentano le restanti parti (gli altri parametri di FromDays sono ore, minuti, secondi e millisecondi e microsecondi, gli altri parametri di FromHours sono minuti, secondi e millisecondi e microsecondi).

TimeSpan timeSpan1 = TimeSpan.FromSeconds(23.455);
// timeSpan1 = 00:00:23.4549999

TimeSpan timeSpan2 = TimeSpan.FromSeconds(seconds: 23, milliseconds: 455);
// timeSpan2 = 00:00:23.455

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi