Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. |
Traducción
Original
|
TimeSpan (Estructura)
Representa un intervalo de tiempo.
Ensamblado: mscorlib (en mscorlib.dll)
El tipo TimeSpan expone los siguientes miembros.
| Nombre | Descripción | |
|---|---|---|
|
TimeSpan(Int64) | Inicializa un nuevo objeto TimeSpan en el número de pasos (ticks) especificado. |
|
TimeSpan(Int32, Int32, Int32) | Inicializa un nuevo objeto TimeSpan en el número de horas, minutos y segundos especificado. |
|
TimeSpan(Int32, Int32, Int32, Int32) | Inicializa un nuevo objeto TimeSpan en el número de días, horas, minutos y segundos especificado. |
|
TimeSpan(Int32, Int32, Int32, Int32, Int32) | Inicializa un nuevo objeto TimeSpan en el número de días, horas, minutos, segundos y milisegundos especificado. |
| Nombre | Descripción | |
|---|---|---|
|
Days | Obtiene el componente correspondiente a los días del intervalo de tiempo representado por estructura TimeSpan actual. |
|
Hours | Obtiene el componente correspondiente a las horas del intervalo de tiempo representado por estructura TimeSpan actual. |
|
Milliseconds | Obtiene el componente correspondiente a los milisegundos del intervalo de tiempo representado por estructura TimeSpan actual. |
|
Minutes | Obtiene el componente correspondiente a los minutos del intervalo de tiempo representado por estructura TimeSpan actual. |
|
Seconds | Obtiene el componente correspondiente a los segundos del intervalo de tiempo representado por estructura TimeSpan actual. |
|
Ticks | Obtiene el número de pasos que representa el valor de la estructura TimeSpan actual. |
|
TotalDays | Obtiene el valor de la estructura TimeSpan actual expresado en días completos y fracciones de días. |
|
TotalHours | Obtiene el valor de la estructura TimeSpan actual expresado en horas completas y fracciones de horas. |
|
TotalMilliseconds | Obtiene el valor de la estructura TimeSpan actual expresado en milisegundos completos y fracciones de milisegundos. |
|
TotalMinutes | Obtiene el valor de la estructura TimeSpan actual expresado en minutos completos y fracciones de minutos. |
|
TotalSeconds | Obtiene el valor de la estructura TimeSpan actual expresado en segundos completos y fracciones de segundos. |
| Nombre | Descripción | |
|---|---|---|
|
Add | Devuelve un nuevo objeto TimeSpan cuyo valor es la suma del objeto TimeSpan especificado y esta instancia. |
|
Compare | Compara dos valores TimeSpan y devuelve un entero que indica si el primer valor es menor, igual o mayor que el segundo valor. |
|
CompareTo(Object) | Compara esta instancia con un objeto especificado y devuelve un entero que indica si la instancia es más corta, igual o más larga que el objeto especificado. |
|
CompareTo(TimeSpan) | Compara esta instancia con un objeto TimeSpan especificado y devuelve un entero que indica si la instancia es más corta, igual o más larga que el objeto TimeSpan. |
|
Duration | Devuelve un nuevo objeto TimeSpan cuyo valor es el valor absoluto del objeto TimeSpan actual. |
|
Equals(Object) | Devuelve un valor que indica si la instancia equivale a un objeto especificado. (Invalida a ValueType.Equals(Object)). |
|
Equals(TimeSpan) | Devuelve un valor que indica si esta instancia equivale a un objeto TimeSpan especificado. |
|
Equals(TimeSpan, TimeSpan) | Devuelve un valor que indica si dos instancias de TimeSpan especificadas son iguales. |
|
Finalize | Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object). |
|
FromDays | Devuelve un TimeSpan que representa un número de días especificado con una precisión aproximada al milisegundo más cercano. |
|
FromHours | Devuelve un TimeSpan que representa un número de horas especificado cuya precisión se aproximada al milisegundo más cercano. |
|
FromMilliseconds | Devuelve un TimeSpan que representa un número de milisegundos especificado. |
|
FromMinutes | Devuelve un TimeSpan que representa un número de minutos especificado con una precisión aproximada al milisegundo más cercano. |
|
FromSeconds | Devuelve un TimeSpan que representa un número de segundos especificado con una precisión aproximada al milisegundo más cercano. |
|
FromTicks | Devuelve un TimeSpan que representa un tiempo especificado en unidades de paso. |
|
GetHashCode | Devuelve un código hash para esta instancia. (Invalida a ValueType.GetHashCode()). |
|
GetType | Obtiene el objeto Type de la instancia actual. (Se hereda de Object). |
|
MemberwiseClone | Crea una copia superficial del objeto Object actual. (Se hereda de Object). |
|
Negate | Devuelve un objeto TimeSpan nuevo cuyo valor es el valor negado de esta instancia. |
|
Parse(String) | Convierte la representación de cadena de un intervalo de tiempo en su equivalente de TimeSpan. |
|
Parse(String, IFormatProvider) | Convierte la representación de cadena de un intervalo de tiempo en su equivalente de TimeSpan, utilizando la información de formato específica de la referencia cultural especificada. |
|
ParseExact(String, String, IFormatProvider) | Convierte la representación de cadena de un intervalo de tiempo en su equivalente de TimeSpan, utilizando el formato especificado así como la información de formato específica de la referencia cultural especificada. El formato de la representación de cadena debe coincidir exactamente con el formato especificado. |
|
ParseExact(String, String[], IFormatProvider) | Convierte la representación de cadena de un intervalo de tiempo en su equivalente de TimeSpan, utilizando la matriz de cadenas de formato y la información de formato específica de la referencia cultural especificadas. El formato de la representación de cadena debe coincidir exactamente con uno de los formatos especificados. |
|
ParseExact(String, String, IFormatProvider, TimeSpanStyles) | Convierte la representación de cadena de un intervalo de tiempo en su equivalente de TimeSpan, utilizando el formato, los estilos y la información de formato específica de la referencia cultural especificados. El formato de la representación de cadena debe coincidir exactamente con el formato especificado. |
|
ParseExact(String, String[], IFormatProvider, TimeSpanStyles) | Convierte la representación de cadena de un intervalo de tiempo en su equivalente de TimeSpan, utilizando los formatos, los estilos y la información de formato específica de la referencia cultural especificados. El formato de la representación de cadena debe coincidir exactamente con uno de los formatos especificados. |
|
Subtract | Devuelve un nuevo objeto TimeSpan cuyo valor es la diferencia entre el objeto TimeSpan especificado y esta instancia. |
|
ToString() | Convierte el valor del objeto TimeSpan actual en su representación de cadena equivalente. (Invalida a ValueType.ToString()). |
|
ToString(String) | Convierte el valor del objeto TimeSpan actual en su representación de cadena equivalente utilizando el formato especificado. |
|
ToString(String, IFormatProvider) | Convierte el valor del objeto TimeSpan actual en su representación de cadena equivalente usando el formato especificado y la información de formato específica de la referencia cultural indicada. |
|
TryParse(String, TimeSpan) | Convierte la representación de cadena de un intervalo de tiempo en su equivalente de TimeSpan y devuelve un valor que indica si la conversión se realizó correctamente. |
|
TryParse(String, IFormatProvider, TimeSpan) | Convierte la representación de cadena de un intervalo de tiempo en su equivalente de TimeSpan utilizando la información de formato específica de la referencia cultural, y devuelve un valor que indica si la conversión se realizó correctamente. |
|
TryParseExact(String, String, IFormatProvider, TimeSpan) | Convierte la representación de cadena de un intervalo de tiempo en su equivalente de TimeSpan utilizando el formato y la información de formato específica de la referencia cultural especificados, y devuelve un valor que indica si la conversión se realizó correctamente. El formato de la representación de cadena debe coincidir exactamente con el formato especificado. |
|
TryParseExact(String, String[], IFormatProvider, TimeSpan) | Convierte la representación de cadena especificada de un intervalo de tiempo en su equivalente de TimeSpan utilizando los formatos y la información de formato específica de la referencia cultural especificados, y devuelve un valor que indica si la conversión se realizó correctamente. El formato de la representación de cadena debe coincidir exactamente con uno de los formatos especificados. |
|
TryParseExact(String, String, IFormatProvider, TimeSpanStyles, TimeSpan) | Convierte la representación de cadena de un intervalo de tiempo en su equivalente de TimeSpan utilizando el formato, los estilos y la información de formato específica de la referencia cultural especificados, y devuelve un valor que indica si la conversión se realizó correctamente. El formato de la representación de cadena debe coincidir exactamente con el formato especificado. |
|
TryParseExact(String, String[], IFormatProvider, TimeSpanStyles, TimeSpan) | Convierte la representación de cadena especificada de un intervalo de tiempo en su equivalente de TimeSpan utilizando los formatos, los estilos y la información de formato específica de la referencia cultural especificados, y devuelve un valor que indica si la conversión se realizó correctamente. El formato de la representación de cadena debe coincidir exactamente con uno de los formatos especificados. |
| Nombre | Descripción | |
|---|---|---|
|
Addition | Agrega dos instancias de TimeSpan especificadas. |
|
Equality | Indica si dos instancias de TimeSpan son iguales. |
|
GreaterThan | Indica si un TimeSpan especificado es mayor que otro TimeSpan especificado. |
|
GreaterThanOrEqual | Indica si un TimeSpan especificado es mayor o igual que otro TimeSpan especificado. |
|
Inequality | Indica si dos instancias de TimeSpan no son iguales. |
|
LessThan | Indica si un TimeSpan especificado es menor que otro TimeSpan especificado. |
|
LessThanOrEqual | Indica si un TimeSpan especificado es menor o igual que otro TimeSpan especificado. |
|
Subtraction | Resta un TimeSpan especificado de otro TimeSpan especificado. |
|
UnaryNegation | Devuelve un TimeSpan cuyo valor es el valor negado de la instancia especificada. |
|
UnaryPlus | Devuelve la instancia especificada de TimeSpan. |
| Nombre | Descripción | |
|---|---|---|
|
MaxValue | Representa el valor máximo de TimeSpan. Este campo es de sólo lectura. |
|
MinValue | Representa el valor mínimo de TimeSpan. Este campo es de sólo lectura. |
|
TicksPerDay | Representa el número de pasos en 1 día. Este campo es constante. |
|
TicksPerHour | Representa el número de pasos en 1 hora. Este campo es constante. |
|
TicksPerMillisecond | Representa el número de pasos en 1 milisegundo. Este campo es constante. |
|
TicksPerMinute | Representa el número de pasos en 1 minuto. Este campo es constante. |
|
TicksPerSecond | Representa el número de pasos en 1 segundo. |
|
Zero | Representa el valor de TimeSpan cero. Este campo es de sólo lectura. |
Un objeto TimeSpan representa un intervalo de tiempo (duración de tiempo o tiempo transcurrido) que se mide como un número positivo o negativo de días, horas, minutos, segundos y fracciones de segundo. La estructura TimeSpan también se puede utilizar para representar la hora del día, pero solo si la hora no está relacionada con una fecha determinada. De los contrario, la estructura DateTime o DateTimeOffset debe utilizarse en su lugar. (Para obtener más información sobre el uso de la estructura TimeSpan para reflejar la hora del día, vea Elegir entre DateTime, DateTimeOffset y TimeZoneInfo.)
La unidad de tiempo más grande que usa la estructura TimeSpan para medir la duración es un día. Los intervalos de tiempo se miden en días por cuestión de coherencia, ya que el número de días en unidades de tiempo mayores, como meses y años, varía.
El valor de un objeto TimeSpan es el número de pasos que equivale al intervalo de tiempo representado. Un paso es igual a 100 nanosegundos o una diezmillonésima parte de un segundo. El valor de un objeto TimeSpan puede estar comprendido entre TimeSpan.MinValue y TimeSpan.MaxValue.
Crear instancias de un valor TimeSpan
Puede crear instancias de un valor TimeSpan de varias formas:
-
Mediante una llamada a su constructor predeterminado implícito. Esto crea un objeto cuyo valor es TimeSpan.Zero, como se muestra en el ejemplo siguiente.
-
Llamando a uno de sus constructores explícitos. En el siguiente ejemplo se inicializa un valor TimeSpan para un número de horas, minutos y segundos especificado.
-
Llamando a un método o realizando una operación que devuelve un valor TimeSpan. Por ejemplo, puede crear instancias de un valor TimeSpan que representa el intervalo entre dos valores de fecha y hora, como las siguientes presentaciones del ejemplo.
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
Los valores TimeSpan se devuelven mediante operadores aritméticos y métodos de las estructuras DateTime, DateTimeOffset y TimeSpan.
-
Mediante el análisis de la representación de cadena de un valor TimeSpan. Puede usar los métodos TryParse y Parse para convertir cadenas que contienen intervalos de tiempo para los valores TimeSpan. En el siguiente ejemplo, se utiliza el método Parse para convertir una matriz de cadenas en valores 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'
Además, puede definir el formato preciso de la cadena de entrada que se va a analizar y convertir a un valor TimeSpan llamando al método TryParseExact u ParseExact.
Realizar operaciones en valores TimeSpan
Puede agregar y restar duraciones de tiempo usando los operadores Subtraction y Addition o llamando a los métodos Subtract y Add. También puede comparar dos duraciones de tiempo llamando a los métodos Compare, CompareTo y Equals. La clase TimeSpan también incluye los métodos Negate y Duration que convierten intervalos de tiempo en valores positivos y negativos,
Dar formato a un valor TimeSpan
Un valor TimeSpan se puede representar como [-]d.hh:mm:ss.ff, donde el signo menos opcional indica un intervalo de tiempo negativo, el componente d son los días, hh son las horas en formato de 24 horas, mm son los minutos, ss son los segundos y ff son fracciones de segundo. Es decir, un intervalo de tiempo está formado por un número positivo o negativo de días completos, un número de días con períodos de tiempo o sólo períodos de tiempo.
Comenzando con .NET Framework versión 4, la estructura TimeSpan admite el formato dependiente de la referencia cultural a través de las sobrecargas de su método ToString, que convierte un valor TimeSpan en su representación de cadena. El método TimeSpan.ToString() predeterminado devuelve un intervalo de tiempo usando un formato invariable que es idéntico a su valor devuelto en versiones anteriores de .NET Framework. La sobrecarga TimeSpan.ToString(String) permite especificar una cadena con formato que define la representación de cadena del intervalo de tiempo. La sobrecarga TimeSpan.ToString(String, IFormatProvider) permite especificar una cadena de formato y la referencia cultural cuyas convenciones de formato se usan para crear la representación de cadena del intervalo de tiempo. TimeSpan admite cadenas con formato personalizado y estándar. (Para obtener más información, vea Cadenas de formato TimeSpan estándar y Cadenas de formato TimeSpan personalizado). Sin embargo, solo las cadenas de formato estándar son dependientes de la referencia cultural.
Restaurar el formato de TimeSpan heredado
En algunos casos, el código que da formato correctamente a los valores TimeSpan en .NET Framework 3.5 y versiones anteriores da error en .NET Framework 4. Esto es muy común en código que llama a un método de formato compuesto para dar formato a un valor TimeSpan con una cadena de formato. El siguiente ejemplo da formato correctamente a un valor TimeSpan en .NET Framework 3.5 y versiones anteriores, pero produce una excepción en .NET Framework 4 y versiones posteriores. Observe que intenta dar formato a un valor TimeSpan usando un especificador de formato no compatible, que se omite en .NET Framework 3.5 y en versiones anteriores.
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
Si no puede modificar el código, puede restaurar el formato heredado de valores TimeSpan de una de las siguientes maneras:
-
Creando un archivo de configuración que contiene el elemento <TimeSpan_LegacyFormatMode>. Al establecer el atributo enabled de este elemento en true, se restaura el formato TimeSpan heredado según la aplicación.
-
Estableciendo el modificador de compatibilidad de "NetFx40_TimeSpanLegacyFormatMode" al crear un dominio de aplicación. Esto habilita el formato TimeSpan heredado según dominio de aplicación. En el ejemplo siguiente se crea un dominio de aplicación que usa el formato TimeSpan heredado.
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"); } }
Cuando el siguiente código se ejecuta en el nuevo dominio de aplicación, revierte al comportamiento de formato TimeSpan heredado.
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.
En el siguiente ejemplo se crean instancias de un objeto TimeSpan que representa la diferencia entre dos fechas. A continuación, muestra las propiedades del objeto 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
Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2
.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.