Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

Struttura TimeSpan

Rappresenta un intervallo di tempo.

Spazio dei nomi:  System
Assembly:  mscorlib (in mscorlib.dll)
[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct TimeSpan : IComparable, IComparable<TimeSpan>, 
	IEquatable<TimeSpan>, IFormattable

Il tipo TimeSpan espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTimeSpan(Int64)Inizializza una nuova istanza della struttura TimeSpan su un numero di segni di graduazione specificato.
Metodo pubblicoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTimeSpan(Int32, Int32, Int32)Inizializza una nuova istanza della struttura TimeSpan su un numero di ore, minuti e secondi specificato.
Metodo pubblicoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTimeSpan(Int32, Int32, Int32, Int32)Inizializza una nuova istanza della struttura TimeSpan su un numero di giorni, ore, minuti e secondi specificato.
Metodo pubblicoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTimeSpan(Int32, Int32, Int32, Int32, Int32)Inizializza una nuova istanza della struttura TimeSpan a un determinato numero di giorni, ore, minuti, del secondo e i millisecondi.
In alto
  NomeDescrizione
Proprietà pubblicaSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreDaysOttiene il componente relativo ai giorni dell'intervallo di tempo rappresentato dalla struttura TimeSpan corrente.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreHoursOttiene il componente relativo alle ore dell'intervallo di tempo rappresentato dalla struttura TimeSpan corrente.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreMillisecondsOttiene il componente relativo ai millisecondi dell'intervallo di tempo rappresentato dalla struttura TimeSpan corrente.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreMinutesOttiene il componente relativo ai minuti dell'intervallo di tempo rappresentato dalla struttura TimeSpan corrente.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreSecondsOttiene il componente relativo ai secondi dell'intervallo di tempo rappresentato dalla struttura TimeSpan corrente.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTicksOttiene il numero di segni di graduazione che rappresentano il valore della struttura TimeSpan corrente.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTotalDaysOttiene il valore della struttura corrente TimeSpan espresso in giorni interi e frazionari.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTotalHoursOttiene il valore della struttura corrente TimeSpan espresso in ore intere e frazionarie.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTotalMillisecondsOttiene il valore della struttura corrente TimeSpan espresso in millisecondi interi e frazionari.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTotalMinutesOttiene il valore della struttura corrente TimeSpan espresso in minuti interi e frazionari.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTotalSecondsOttiene il valore della struttura corrente TimeSpan espresso in secondi interi e frazionari.
In alto
  NomeDescrizione
Metodo pubblicoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreAddRestituisce un nuovo oggetto TimeSpan il cui valore è la somma dell'oggetto TimeSpan specificato e di questa istanza.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreCompareConfronta due valori TimeSpan e restituisce un intero che indica se il primo valore è più breve, uguale o più lungo del secondo valore.
Metodo pubblicoSupportato da XNA FrameworkCompareTo(Object)Confronta questa istanza con un oggetto specificato e restituisce un Integer che indica se questa istanza è più breve, uguale o più lunga dell'oggetto specificato.
Metodo pubblicoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreCompareTo(TimeSpan)Confronta questa istanza con un oggetto TimeSpan specificato e restituisce un Integer che indica se questa istanza è più breve, uguale o più lunga dell'oggetto TimeSpan.
Metodo pubblicoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreDurationRestituisce un nuovo oggetto TimeSpan il cui valore è il valore assoluto dell'oggetto TimeSpan corrente.
Metodo pubblicoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreEquals(Object)Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Esegue l'override di ValueType.Equals(Object)).
Metodo pubblicoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreEquals(TimeSpan)Restituisce un valore che indica se l'istanza è uguale a un oggetto specificato TimeSpan.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreEquals(TimeSpan, TimeSpan)Restituisce un valore che indica se due istanze specificate di TimeSpan sono uguali.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreFromDaysRestituisce un TimeSpan che rappresenta un numero di giorni specificato, in cui la specifica è approssimata al millisecondo più vicino.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreFromHoursRestituisce un TimeSpan che rappresenta un numero di ore specificato, in cui la specifica è approssimata al millisecondo più vicino.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreFromMillisecondsRestituisce un TimeSpan che rappresenta un numero di millisecondi specificato.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreFromMinutesRestituisce un TimeSpan che rappresenta un numero di minuti specificato, in cui la specifica è approssimata al millisecondo più vicino.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreFromSecondsRestituisce un TimeSpan che rappresenta un numero di secondi specificato, in cui la specifica è approssimata al millisecondo più vicino.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreFromTicksRestituisce un TimeSpan che rappresenta un'ora specificata, in cui la specifica è espressa in unità di graduazione.
Metodo pubblicoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetHashCodeRestituisce un codice hash per questa istanza. (Esegue l'override di ValueType.GetHashCode()).
Metodo pubblicoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreNegateRestituisce un nuovo oggetto TimeSpan il cui valore è il valore negato di questa istanza.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParse(String)Converte la rappresentazione in forma di stringa di un intervallo di tempo nell'equivalente TimeSpan.
Metodo pubblicoMembro staticoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParse(String, IFormatProvider)Converte una rappresentazione in forma di stringa di un intervallo di tempo nell'equivalente TimeSpan utilizzando le informazioni di formato specifiche delle impostazioni cultura specificate.
Metodo pubblicoMembro staticoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParseExact(String, String, IFormatProvider)Converte la rappresentazione in forma di stringa di un intervallo di tempo nell'equivalente TimeSpan utilizzando le informazioni di formato specifiche delle impostazioni cultura specificate. Il formato della rappresentazione in forma di stringa deve corrispondere esattamente a un formato specificato.
Metodo pubblicoMembro staticoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParseExact(String, String[], IFormatProvider)Converte la rappresentazione in forma di stringa di un intervallo di tempo nell'equivalente TimeSpan utilizzando la matrice specificata di stringhe di formato e di informazioni di formato specifiche delle impostazioni cultura. Il formato della rappresentazione in forma di stringa deve corrispondere esattamente a uno dei formati specificati.
Metodo pubblicoMembro staticoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParseExact(String, String, IFormatProvider, TimeSpanStyles)Converte la rappresentazione in forma di stringa di un intervallo di tempo nell'equivalente TimeSpan utilizzando gli stili e le informazioni di formato specifiche delle impostazioni cultura specificate. Il formato della rappresentazione in forma di stringa deve corrispondere esattamente a un formato specificato.
Metodo pubblicoMembro staticoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParseExact(String, String[], IFormatProvider, TimeSpanStyles)Converte la rappresentazione in forma di stringa di un intervallo di tempo nell'equivalente TimeSpan utilizzando i formati, gli stili e le informazioni di formato specifiche delle impostazioni cultura. Il formato della rappresentazione in forma di stringa deve corrispondere esattamente a uno dei formati specificati.
Metodo pubblicoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreSubtractRestituisce un nuovo oggetto TimeSpan il cui valore è la differenza tra l'oggetto TimeSpan specificato e questa istanza.
Metodo pubblicoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToString()Converte il valore dell'oggetto TimeSpan corrente nella rappresentazione in forma di stringa equivalente. (Esegue l'override di ValueType.ToString()).
Metodo pubblicoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToString(String)Converte il valore dell'oggetto TimeSpan corrente nella rappresentazione in forma di stringa equivalente utilizzando il formato specificato.
Metodo pubblicoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToString(String, IFormatProvider)Converte il valore dell'oggetto TimeSpan corrente nella rappresentazione in forma di stringa equivalente utilizzando il formato specificato e le informazioni di formattazione specifiche delle impostazioni cultura.
Metodo pubblicoMembro staticoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTryParse(String, TimeSpan)Converte la rappresentazione in forma di stringa di un intervallo di tempo nell'equivalente TimeSpan e restituisce un valore che indica se la conversione è stata eseguita correttamente.
Metodo pubblicoMembro staticoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTryParse(String, IFormatProvider, TimeSpan)Converte la rappresentazione in forma di stringa di un intervallo di tempo nell'equivalente TimeSpan utilizzando le informazioni di formattazione specifiche delle impostazioni cultura specificate e restituisce un valore che indica se la conversione è stata eseguita correttamente.
Metodo pubblicoMembro staticoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTryParseExact(String, String, IFormatProvider, TimeSpan)Converte la rappresentazione in forma di stringa di un intervallo di tempo nell'equivalente TimeSpan utilizzando il formato specificato e le informazioni di formato specifiche delle impostazioni cultura e restituisce un valore che indica se la conversione è stata eseguita correttamente. Il formato della rappresentazione in forma di stringa deve corrispondere esattamente a un formato specificato.
Metodo pubblicoMembro staticoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTryParseExact(String, String[], IFormatProvider, TimeSpan)Converte la rappresentazione in forma di stringa specificata di un intervallo di tempo nell'equivalente TimeSpan utilizzando i formati specificati e le informazioni di formato specifiche delle impostazioni cultura e restituisce un valore che indica se la conversione è stata eseguita correttamente. Il formato della rappresentazione in forma di stringa deve corrispondere esattamente a uno dei formati specificati.
Metodo pubblicoMembro staticoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTryParseExact(String, String, IFormatProvider, TimeSpanStyles, TimeSpan)Converte la rappresentazione in forma di stringa di un intervallo di tempo nell'equivalente TimeSpan utilizzando il formato specificato, le informazioni di formato specifiche delle impostazioni cultura e gli stili e restituisce un valore che indica se la conversione è stata eseguita correttamente. Il formato della rappresentazione in forma di stringa deve corrispondere esattamente a un formato specificato.
Metodo pubblicoMembro staticoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTryParseExact(String, String[], IFormatProvider, TimeSpanStyles, TimeSpan)Converte la rappresentazione in forma di stringa specificata di un intervallo di tempo nell'equivalente TimeSpan utilizzando i formati specificati, le informazioni di formato specifiche delle impostazioni cultura e gli stili e restituisce un valore che indica se la conversione è stata eseguita correttamente. Il formato della rappresentazione in forma di stringa deve corrispondere esattamente a uno dei formati specificati.
In alto
  NomeDescrizione
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreAdditionAggiunge due istanze TimeSpan specificate.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreEqualityIndica se due istanze TimeSpan sono uguali.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGreaterThanIndica se un TimeSpan specificato è maggiore di un altro TimeSpan specificato.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGreaterThanOrEqualIndica se un TimeSpan specificato è maggiore o uguale a un altro TimeSpan specificato.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreInequalityIndica se due istanze di TimeSpan non sono uguali.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreLessThanIndica se un TimeSpan specificato è minore di un altro TimeSpan specificato.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreLessThanOrEqualIndica se un TimeSpan specificato è minore o uguale a un altro TimeSpan specificato.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreSubtractionSottrae un TimeSpan specificato da un altro TimeSpan specificato.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreUnaryNegationRestituisce un TimeSpan il cui valore è il valore negato dell'istanza specificata.
Operatore pubblicoMembro staticoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreUnaryPlusRestituisce l'istanza specificata di TimeSpan.
In alto
  NomeDescrizione
Campo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreMaxValueRappresenta il valore TimeSpan massimo. Questo è un campo di sola lettura.
Campo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreMinValueRappresenta il valore TimeSpan minimo. Questo è un campo di sola lettura.
Campo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTicksPerDayRappresenta il numero di graduazioni in un giorno. Il campo è costante.
Campo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTicksPerHourRappresenta il numero di graduazioni in un'ora. Il campo è costante.
Campo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTicksPerMillisecondRappresenta il numero di graduazioni in un millisecondo. Il campo è costante.
Campo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTicksPerMinuteRappresenta il numero di graduazioni in un minuto. Il campo è costante.
Campo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTicksPerSecondRappresenta il numero di graduazioni in un secondo.
Campo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreZeroRappresenta il valore TimeSpan zero. Questo è un campo di sola lettura.
In alto
  NomeDescrizione
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da  Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreIComparable.CompareToConfronta l'istanza corrente a un altro oggetto dello stesso tipo e restituisce un Integer che indica se l'istanza corrente precede, segue o si trova nella stessa posizione dell'altro oggetto all'interno dell'ordinamento.
In alto

Un oggetto TimeSpan rappresenta un intervallo di tempo (durata di tempo o tempo trascorso) misurato in numero positivo o negativo di giorni, ore, minuti, secondi e frazioni di secondo. La struttura TimeSpan può essere utilizzata anche per rappresentare l'ora del giorno, ma solo se non è correlata a una particolare data. In caso contrario, deve invece essere utilizzata la struttura DateTime o DateTimeOffset. Per ulteriori informazioni sull'utilizzo della struttura TimeSpan per rispecchiare l'ora del giorno, vedere Scelta tra DateTime, DateTimeOffset e TimeZoneInfo.

L'unità di tempo più grande utilizzata dalla struttura TimeSpan per misurare la durata è un giorno. Gli intervalli di tempo vengono misurati in giorni per coerenza, poiché il numero di giorni in unità di tempo più grandi, quali ad esempio mesi e anni, è soggetto a variazioni.

Il valore di un oggetto TimeSpan è il numero di segni di graduazione che equivalgono all'intervallo di tempo rappresentato. Un segno di graduazione equivale a 100 nanosecondi oppure a un decimilionesimo di secondo. Il valore di un oggetto TimeSpan può essere compreso tra TimeSpan.MinValue e TimeSpan.MaxValue.

Creazione un'istanza di un valore TimeSpan

È possibile creare un'istanza di un valore TimeSpan in diversi modi:

  • Tramite la chiamata al relativo costruttore predefinito. Questo crea un oggetto il cui valore è TimeSpan.Zero, come mostra l'esempio seguente.

    
    TimeSpan interval = new TimeSpan();
    Console.WriteLine(interval.Equals(TimeSpan.Zero));    // Displays "True".
    
    
    
  • Chiamando uno dei costruttori espliciti. Nell'esempio riportato di seguito viene inizializzato un valore TimeSpan su un numero di ore, minuti e secondi specificato.

    
    TimeSpan interval = new TimeSpan(2, 14, 18);
    Console.WriteLine(interval.ToString());              // Displays "02:14:18".
    
    
    
  • Tramite la chiamata a un metodo o l'esecuzione di un'operazione che restituisce un valore TimeSpan. Ad esempio, è possibile creare un'istanza di un valore TimeSpan che rappresenta l'intervallo tra due valori di data e ora, come mostra l'esempio seguente.

    
    DateTime departure = new DateTime(2010, 6, 12, 18, 32, 0);
    DateTime arrival = new DateTime(2010, 6, 13, 22, 47, 0);
    TimeSpan travelTime = arrival - departure;  
    Console.WriteLine("{0} - {1} = {2}", arrival, departure, travelTime);      
    // The example displays the following output:
    //       6/13/2010 10:47:00 PM - 6/12/2010 6:32:00 PM = 1.04:15:00
    
    
    

    È inoltre possibile inizializzare un oggetto TimeSpan a un valore di zero in questo modo, come illustrato di seguito.

    
    using System;
    
    public class Example
    {
       static Random rnd = new Random();
    
       public static void Main()
       {
          TimeSpan timeSpent = TimeSpan.Zero;
    
          timeSpent += GetTimeBeforeLunch();
          timeSpent += GetTimeAfterLunch();
    
          Console.WriteLine("Total time: {0}", timeSpent);
       }
    
       private static TimeSpan GetTimeBeforeLunch()
       {
          return new TimeSpan(rnd.Next(3, 6), 0, 0);
       }
    
       private static TimeSpan GetTimeAfterLunch()
       {
          return new TimeSpan(rnd.Next(3, 6), 0, 0);
       }
    }
    // The example displays output like the following:
    //        Total time: 08:00:00
    
    
    

    I valori TimeSpan vengono restituiti da operatori aritmetici e dai metodi delle strutture DateTime, DateTimeOffset e TimeSpan.

  • Analizzando la rappresentazione di stringa di valore TimeSpan. È possibile utilizzare i metodi Parse e TryParse per convertire stringhe che contengono intervalli di tempo in valori TimeSpan. Nell'esempio che segue viene utilizzato il metodo Parse per convertire una matrice di stringhe in valori TimeSpan.

    
    string[] values = { "12", "31.", "5.8:32:16", "12:12:15.95", ".12"};
    foreach (string value in values)
    {
       try {
          TimeSpan ts = TimeSpan.Parse(value);
          Console.WriteLine("'{0}' --> {1}", value, ts);
       }
       catch (FormatException) {
          Console.WriteLine("Unable to parse '{0}'", value);
       }
       catch (OverflowException) {
          Console.WriteLine("'{0}' is outside the range of a TimeSpan.", value);
       }   
    }
    // The example displays the following output:
    //       '12' --> 12.00:00:00
    //       Unable to parse '31.'
    //       '5.8:32:16' --> 5.08:32:16
    //       '12:12:15.95' --> 12:12:15.9500000
    //       Unable to parse '.12'  
    
    
    

    Inoltre, è possibile definire il formato preciso della stringa di input da analizzare e convertire in un valore TimeSpan chiamando il metodo ParseExact o TryParseExact.

Esecuzione di operazioni sui valori TimeSpan

È possibile aggiungere e sottrarre le durate tramite gli operatori Addition e Subtraction o chiamando i metodi Add e Subtract. È inoltre possibile paragonare due durate chiamando i metodi Compare, CompareTo e Equals. La classe TimeSpan include anche i metodi Duration e Negate che convertono intervalli di tempo in valori positivi e negativi.

L'intervallo dei valori TimeSpan è compreso tra MinValue e MaxValue.

Formattazione di un valore TimeSpan

Un valore TimeSpan può essere rappresentato come [-]d.hh:mm:ss.ff, dove il segno di sottrazione facoltativo indica un intervallo di tempo negativo, il componente d indica i giorni, hh le ore nel formato 24 ore, mm i minuti, ss i secondi e ff le frazioni di un secondo. Un intervallo di tempo è quindi costituito da un numero positivo o negativo di giorni senza indicazione dell'ora, da un numero di giorni con l'indicazione dell'ora o solo da un'ora del giorno.

Iniziando con .NET Framework 4, la struttura TimeSpan supporta la formattazione dipendente dalle impostazioni cultura tramite gli overload del metodo ToString che converte un valore TimeSpan nella rappresentazione di stringa. Il metodo TimeSpan.ToString() predefinito restituisce un intervallo di tempo tramite un formato invariabile identico al valore restituito in versioni precedenti di .NET Framework. L'overload del metodo TimeSpan.ToString(String) consente di specificare una stringa di formato che definisce la rappresentazione di stringa dell'intervallo di tempo. L'overload  TimeSpan.ToString(String, IFormatProvider)consente di specificare una stringa di formato e le impostazioni cultura le cui convenzioni di formattazione vengono utilizzate per creare la rappresentazione di stringa dell'intervallo di tempo. TimeSpan supporta sia lo standard che le stringhe di formato personalizzate. Per ulteriori informazioni, vedere Stringhe di formato TimeSpan standard e Stringhe di formato TimeSpan personalizzate. Tuttavia, solo le stringhe di formato standard sono dipendenti dalle impostazioni cultura.

Ripristino della formattazione legacy in TimeSpan

In alcuni casi, il codice che correttamente formattati valori TimeSpan in .NET Framework 3.5 e l'esito negativo delle versioni precedenti di .NET Framework 4. Questa è la più comune nel codice che chiama un metodo formattazione composta per formattare un valoreTimeSpan con una stringa di formato. Nell'esempio riportato di seguito viene illustrato come un valore TimeSpan venga formattato correttamente in .NET Framework 3.5 e versioni precedenti, ma venga generata un'eccezione in .NET Framework 4 e versioni successive. Si noti che il codice tenta di formattare un valore TimeSpan tramite un identificatore di formato non supportato, ignorato in .NET Framework 3.5 e nelle versioni precedenti.


TimeSpan interval = new TimeSpan(12, 30, 45);
string output;
try {
   output = String.Format("{0:r}", interval);
}
catch (FormatException) {
   output = "Invalid Format";
}
Console.WriteLine(output);
// Output from .NET Framework 3.5 and earlier versions:
//       12:30:45
// Output from .NET Framework 4:
//       Invalid Format


Se non è possibile modificare il codice, è possibile ripristinare la formattazione legacy dei valori TimeSpan in uno dei modi seguenti:

  • Creando un file di configurazione che contiene l'elemento <TimeSpan_LegacyFormatMode>. L'impostazione dell'attributo enabled di questo elemento su true ripristina la formattazione legacy TimeSpan per ogni singola applicazione.

  • Impostando il commutatore di compatibilità "NetFx40_TimeSpanLegacyFormatMode" quando si crea un dominio di applicazione. Questa operazione consente la formattazione di TimeSpan legacy per ogni dominio di applicazione. Nell'esempio riportato di seguito viene creato un dominio dell'applicazione che una formattazione TimeSpan legacy.

    
    using System;
    
    public class Example
    {
       public static void Main()
       {
          AppDomainSetup appSetup = new AppDomainSetup();
          appSetup.SetCompatibilitySwitches( new string[] { "NetFx40_TimeSpanLegacyFormatMode" } );
          AppDomain legacyDomain = AppDomain.CreateDomain("legacyDomain", 
                                                          null, appSetup);
          legacyDomain.ExecuteAssembly("ShowTimeSpan.exe");
       }
    }
    
    
    

    Quando il codice seguente viene eseguito nel nuovo dominio dell'applicazione, viene ripristinato il comportamento di formattazione TimeSpan legacy.

    
    using System;
    
    public class Example
    {
       public static void Main()
       {
          TimeSpan interval = DateTime.Now - DateTime.Now.Date;
          string msg = String.Format("Elapsed Time Today: {0:d} hours.",
                                     interval);
          Console.WriteLine(msg);
       }
    }
    // The example displays the following output:
    //       Elapsed Time Today: 01:40:52.2524662 hours.
    
    
    

Nell'esempio riportato di seguito viene creata un'istanza di un oggetto TimeSpan che rappresenta la differenza tra due date. Visualizza quindi le proprietà dell'oggetto TimeSpan.


// Define two dates.
DateTime date1 = new DateTime(2010, 1, 1, 8, 0, 15);
DateTime date2 = new DateTime(2010, 8, 18, 13, 30, 30);
// Calculate the interval between the two dates.
TimeSpan interval = date2 - date1;
Console.WriteLine("{0} - {1} = {2}", date2, date1, interval.ToString());
// Display individual properties of the resulting TimeSpan object.
Console.WriteLine("   {0,-35} {1,20}", "Value of Days Component:", interval.Days);
Console.WriteLine("   {0,-35} {1,20}", "Total Number of Days:", interval.TotalDays);
Console.WriteLine("   {0,-35} {1,20}", "Value of Hours Component:", interval.Hours);
Console.WriteLine("   {0,-35} {1,20}", "Total Number of Hours:", interval.TotalHours);
Console.WriteLine("   {0,-35} {1,20}", "Value of Minutes Component:", interval.Minutes);
Console.WriteLine("   {0,-35} {1,20}", "Total Number of Minutes:", interval.TotalMinutes);
Console.WriteLine("   {0,-35} {1,20:N0}", "Value of Seconds Component:", interval.Seconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Total Number of Seconds:", interval.TotalSeconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Value of Milliseconds Component:", interval.Milliseconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Total Number of Milliseconds:", interval.TotalMilliseconds);
Console.WriteLine("   {0,-35} {1,20:N0}", "Ticks:", interval.Ticks);
// the example displays the following output:
//       8/18/2010 1:30:30 PM - 1/1/2010 8:00:15 AM = 229.05:30:15
//          Value of Days Component:                             229
//          Total Number of Days:                   229.229340277778
//          Value of Hours Component:                              5
//          Total Number of Hours:                  5501.50416666667
//          Value of Minutes Component:                           30
//          Total Number of Minutes:                       330090.25
//          Value of Seconds Component:                           15
//          Total Number of Seconds:                      19,805,415
//          Value of Milliseconds Component:                       0
//          Total Number of Milliseconds:             19,805,415,000
//          Ticks:                               198,054,150,000,000


.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Qualsiasi membro pubblico static (Shared in Visual Basic) di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.
Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft. Tutti i diritti riservati.