TimeSpan.FromHours(Double) Método

Definición

Devuelve un TimeSpan que representa un número de horas especificado con una precisión aproximada al milisegundo más cercano.

public:
 static TimeSpan FromHours(double value);
public static TimeSpan FromHours (double value);
static member FromHours : double -> TimeSpan
Public Shared Function FromHours (value As Double) As TimeSpan

Parámetros

value
Double

Número de horas con una precisión aproximada al milisegundo más cercano.

Devoluciones

Objeto que representa value.

Excepciones

value es menor que TimeSpan.MinValue o mayor que TimeSpan.MaxValue.

o bien

value es PositiveInfinity.

o bien

value es NegativeInfinity.

value es igual a NaN.

Ejemplos

En el ejemplo siguiente se crean varios TimeSpan objetos mediante el FromHours método .

// Example of the TimeSpan::FromHours( double ) method.
using namespace System;
void GenTimeSpanFromHours( double hours )
{
   
   // Create a TimeSpan object and TimeSpan string from 
   // a number of hours.
   TimeSpan interval = TimeSpan::FromHours( hours );
   String^ timeInterval = interval.ToString();
   
   // Pad the end of the TimeSpan string with spaces if it 
   // does not contain milliseconds.
   int pIndex = timeInterval->IndexOf( ':' );
   pIndex = timeInterval->IndexOf( '.', pIndex );
   if ( pIndex < 0 )
      timeInterval = String::Concat( timeInterval, "        " );

   Console::WriteLine( "{0,21}{1,26}", hours, timeInterval );
}

int main()
{
   Console::WriteLine( "This example of TimeSpan::FromHours( double )\n"
   "generates the following output.\n" );
   Console::WriteLine( "{0,21}{1,18}", "FromHours", "TimeSpan" );
   Console::WriteLine( "{0,21}{1,18}", "---------", "--------" );
   GenTimeSpanFromHours( 0.0000002 );
   GenTimeSpanFromHours( 0.0000003 );
   GenTimeSpanFromHours( 0.0012345 );
   GenTimeSpanFromHours( 12.3456789 );
   GenTimeSpanFromHours( 123456.7898765 );
   GenTimeSpanFromHours( 0.0002777 );
   GenTimeSpanFromHours( 0.0166666 );
   GenTimeSpanFromHours( 1 );
   GenTimeSpanFromHours( 24 );
   GenTimeSpanFromHours( 500.3389445 );
}

/*
This example of TimeSpan::FromHours( double )
generates the following output.

            FromHours          TimeSpan
            ---------          --------
                2E-07          00:00:00.0010000
                3E-07          00:00:00.0010000
            0.0012345          00:00:04.4440000
           12.3456789          12:20:44.4440000
       123456.7898765     5144.00:47:23.5550000
            0.0002777          00:00:01
            0.0166666          00:01:00
                    1          01:00:00
                   24        1.00:00:00
          500.3389445       20.20:20:20.2000000
*/
// Example of the TimeSpan.FromHours( double ) method.
using System;

class FromHoursDemo
{
    static void GenTimeSpanFromHours( double hours )
    {
        // Create a TimeSpan object and TimeSpan string from 
        // a number of hours.
        TimeSpan    interval = TimeSpan.FromHours( hours );
        string      timeInterval = interval.ToString( );

        // Pad the end of the TimeSpan string with spaces if it 
        // does not contain milliseconds.
        int pIndex = timeInterval.IndexOf( ':' );
        pIndex = timeInterval.IndexOf( '.', pIndex );
        if( pIndex < 0 )   timeInterval += "        ";

        Console.WriteLine( "{0,21}{1,26}", hours, timeInterval );
    } 

    static void Main( )
    {
        Console.WriteLine(
            "This example of TimeSpan.FromHours( double )\n" +
            "generates the following output.\n" );
        Console.WriteLine( "{0,21}{1,18}",
            "FromHours", "TimeSpan" );
        Console.WriteLine( "{0,21}{1,18}", 
            "---------", "--------" );

        GenTimeSpanFromHours( 0.0000002 );
        GenTimeSpanFromHours( 0.0000003 );
        GenTimeSpanFromHours( 0.0012345 );
        GenTimeSpanFromHours( 12.3456789 );
        GenTimeSpanFromHours( 123456.7898765 );
        GenTimeSpanFromHours( 0.0002777 );
        GenTimeSpanFromHours( 0.0166666 );
        GenTimeSpanFromHours( 1 );
        GenTimeSpanFromHours( 24 );
        GenTimeSpanFromHours( 500.3389445 );
    } 
} 

/*
This example of TimeSpan.FromHours( double )
generates the following output.

            FromHours          TimeSpan
            ---------          --------
                2E-07          00:00:00.0010000
                3E-07          00:00:00.0010000
            0.0012345          00:00:04.4440000
           12.3456789          12:20:44.4440000
       123456.7898765     5144.00:47:23.5550000
            0.0002777          00:00:01
            0.0166666          00:01:00
                    1          01:00:00
                   24        1.00:00:00
          500.3389445       20.20:20:20.2000000
*/
// Example of the TimeSpan.FromHours( double ) method.
open System

let genTimeSpanFromHours hours =
    // Create a TimeSpan object and TimeSpan string from 
    // a number of hours.
    let interval = TimeSpan.FromHours hours
    let timeInterval = string interval

    // Pad the end of the TimeSpan string with spaces if it 
    // does not contain milliseconds.
    let pIndex = timeInterval.IndexOf ':'
    let pIndex = timeInterval.IndexOf('.', pIndex)
    let timeInterval =
        if pIndex < 0 then timeInterval + "        "
        else timeInterval

    printfn $"{hours,21}{timeInterval,26}"

printfn "This example of TimeSpan.FromHours( double )\ngenerates the following output.\n"
printfn "%21s%18s" "FromHours" "TimeSpan"
printfn "%21s%18s" "---------" "--------"

genTimeSpanFromHours 0.0000002
genTimeSpanFromHours 0.0000003
genTimeSpanFromHours 0.0012345
genTimeSpanFromHours 12.3456789
genTimeSpanFromHours 123456.7898765
genTimeSpanFromHours 0.0002777
genTimeSpanFromHours 0.0166666
genTimeSpanFromHours 1
genTimeSpanFromHours 24
genTimeSpanFromHours 500.3389445

(*
This example of TimeSpan.FromHours( double )
generates the following output.

            FromHours          TimeSpan
            ---------          --------
                2E-07          00:00:00.0010000
                3E-07          00:00:00.0010000
            0.0012345          00:00:04.4440000
           12.3456789          12:20:44.4440000
       123456.7898765     5144.00:47:23.5550000
            0.0002777          00:00:01
            0.0166666          00:01:00
                    1          01:00:00
                   24        1.00:00:00
          500.3389445       20.20:20:20.2000000
*)
' Example of the TimeSpan.FromHours( Double ) method.
Module FromHoursDemo

    Sub GenTimeSpanFromHours( hours As Double )

        ' Create a TimeSpan object and TimeSpan string from 
        ' a number of hours.
        Dim interval As TimeSpan = _
            TimeSpan.FromHours( hours )
        Dim timeInterval As String = interval.ToString( )

        ' Pad the end of the TimeSpan string with spaces if it 
        ' does not contain milliseconds.
        Dim pIndex As Integer = timeInterval.IndexOf( ":"c )
        pIndex = timeInterval.IndexOf( "."c, pIndex )
        If pIndex < 0 Then  timeInterval &= "        "

        Console.WriteLine( "{0,21}{1,26}", hours, timeInterval )
    End Sub 

    Sub Main( )

        Console.WriteLine( "This example of " & _
            "TimeSpan.FromHours( Double )" & _
            vbCrLf & "generates the following output." & vbCrLf )
        Console.WriteLine( "{0,21}{1,18}", _
            "FromHours", "TimeSpan" )    
        Console.WriteLine( "{0,21}{1,18}", _
            "---------", "--------" )    

        GenTimeSpanFromHours( 0.0000002 )
        GenTimeSpanFromHours( 0.0000003 )
        GenTimeSpanFromHours( 0.0012345 )
        GenTimeSpanFromHours( 12.3456789 )
        GenTimeSpanFromHours( 123456.7898765 )
        GenTimeSpanFromHours( 0.0002777 )
        GenTimeSpanFromHours( 0.0166666 )
        GenTimeSpanFromHours( 1 )
        GenTimeSpanFromHours( 24 )
        GenTimeSpanFromHours( 500.3389445 )
    End Sub 
End Module 

' This example of TimeSpan.FromHours( Double )
' generates the following output.
' 
'             FromHours          TimeSpan
'             ---------          --------
'                 2E-07          00:00:00.0010000
'                 3E-07          00:00:00.0010000
'             0.0012345          00:00:04.4440000
'            12.3456789          12:20:44.4440000
'        123456.7898765     5144.00:47:23.5550000
'             0.0002777          00:00:01
'             0.0166666          00:01:00
'                     1          01:00:00
'                    24        1.00:00:00
'           500.3389445       20.20:20:20.2000000

Comentarios

El value parámetro se convierte en milisegundos, que se convierte en tics, y ese número de tics se usa para inicializar el nuevo TimeSpan. Por lo tanto, value solo se considerará preciso para el milisegundo más cercano. Tenga en cuenta que, debido a la pérdida de precisión del Double tipo de datos, esta conversión puede generar un OverflowException para los valores que están cerca de pero que siguen en el intervalo de o MinValueMaxValue. Por ejemplo, esto provoca que en OverflowException el siguiente intento se cree una instancia de un TimeSpan objeto .

// The following throws an OverflowException at runtime
TimeSpan maxSpan = TimeSpan.FromHours(TimeSpan.MaxValue.TotalHours);
// The following throws an OverflowException at runtime
let maxSpan = TimeSpan.FromHours TimeSpan.MaxValue.TotalHours
' The following throws an OverflowException at runtime
Dim maxSpan As TimeSpan = TimeSpan.FromHours(TimeSpan.MaxValue.TotalHours)

Se aplica a

Consulte también