TimeSpan.FromDays(Double) Metodo

Definizione

Restituisce un oggetto TimeSpan che rappresenta un numero di giorni specificato, in cui la specifica è approssimata al millisecondo più vicino.

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

Parametri

value
Double

Numero di giorni, approssimato al millisecondo più vicino.

Restituisce

Oggetto che rappresenta l'oggetto value.

Eccezioni

value è minore di TimeSpan.MinValue o maggiore di TimeSpan.MaxValue.

-oppure-

value è PositiveInfinity.

-oppure-

value è NegativeInfinity.

value è uguale a NaN.

Esempio

Nell'esempio seguente vengono creati diversi TimeSpan oggetti usando il FromDays metodo .

// Example of the TimeSpan::FromDays( double ) method.
using namespace System;
void GenTimeSpanFromDays( double days )
{
   
   // Create a TimeSpan object and TimeSpan string from 
   // a number of days.
   TimeSpan interval = TimeSpan::FromDays( days );
   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}", days, timeInterval );
}

int main()
{
   Console::WriteLine( "This example of TimeSpan::FromDays( double )\n"
   "generates the following output.\n" );
   Console::WriteLine( "{0,21}{1,18}", "FromDays", "TimeSpan" );
   Console::WriteLine( "{0,21}{1,18}", "--------", "--------" );
   GenTimeSpanFromDays( 0.000000006 );
   GenTimeSpanFromDays( 0.000000017 );
   GenTimeSpanFromDays( 0.000123456 );
   GenTimeSpanFromDays( 1.234567898 );
   GenTimeSpanFromDays( 12345.678987654 );
   GenTimeSpanFromDays( 0.000011574 );
   GenTimeSpanFromDays( 0.000694444 );
   GenTimeSpanFromDays( 0.041666666 );
   GenTimeSpanFromDays( 1 );
   GenTimeSpanFromDays( 20.84745602 );
}

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

             FromDays          TimeSpan
             --------          --------
                6E-09          00:00:00.0010000
              1.7E-08          00:00:00.0010000
          0.000123456          00:00:10.6670000
          1.234567898        1.05:37:46.6660000
      12345.678987654    12345.16:17:44.5330000
           1.1574E-05          00:00:01
          0.000694444          00:01:00
          0.041666666          01:00:00
                    1        1.00:00:00
          20.84745602       20.20:20:20.2000000
*/
// Example of the TimeSpan.FromDays( double ) method.
using System;

class FromDaysDemo
{
    static void GenTimeSpanFromDays( double days )
    {
        // Create a TimeSpan object and TimeSpan string from 
        // a number of days.
        TimeSpan interval = TimeSpan.FromDays( days );
        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}", days, timeInterval );
    } 

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

        GenTimeSpanFromDays( 0.000000006 );
        GenTimeSpanFromDays( 0.000000017 );
        GenTimeSpanFromDays( 0.000123456 );
        GenTimeSpanFromDays( 1.234567898 );
        GenTimeSpanFromDays( 12345.678987654 );
        GenTimeSpanFromDays( 0.000011574 );
        GenTimeSpanFromDays( 0.000694444 );
        GenTimeSpanFromDays( 0.041666666 );
        GenTimeSpanFromDays( 1 );
        GenTimeSpanFromDays( 20.84745602 );
    } 
} 

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

             FromDays          TimeSpan
             --------          --------
                6E-09          00:00:00.0010000
              1.7E-08          00:00:00.0010000
          0.000123456          00:00:10.6670000
          1.234567898        1.05:37:46.6660000
      12345.678987654    12345.16:17:44.5330000
           1.1574E-05          00:00:01
          0.000694444          00:01:00
          0.041666666          01:00:00
                    1        1.00:00:00
          20.84745602       20.20:20:20.2000000
*/
// Example of the TimeSpan.FromDays( double ) method.
open System

let genTimeSpanFromDays days =
    // Create a TimeSpan object and TimeSpan string from 
    // a number of days.
    let interval = TimeSpan.FromDays days
    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 $"{days,21}{timeInterval,26}"

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

genTimeSpanFromDays 0.000000006
genTimeSpanFromDays 0.000000017
genTimeSpanFromDays 0.000123456
genTimeSpanFromDays 1.234567898
genTimeSpanFromDays 12345.678987654
genTimeSpanFromDays 0.000011574
genTimeSpanFromDays 0.000694444
genTimeSpanFromDays 0.041666666
genTimeSpanFromDays 1
genTimeSpanFromDays 20.84745602

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

             FromDays          TimeSpan
             --------          --------
                6E-09          00:00:00.0010000
              1.7E-08          00:00:00.0010000
          0.000123456          00:00:10.6670000
          1.234567898        1.05:37:46.6660000
      12345.678987654    12345.16:17:44.5330000
           1.1574E-05          00:00:01
          0.000694444          00:01:00
          0.041666666          01:00:00
                    1        1.00:00:00
          20.84745602       20.20:20:20.2000000
*)
' Example of the TimeSpan.FromDays( Double ) method.
Module FromDaysDemo

    Sub GenTimeSpanFromDays( days As Double )

        ' Create a TimeSpan object and TimeSpan string from 
        ' a number of days.
        Dim interval As TimeSpan = _
            TimeSpan.FromDays( days )
        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}", days, timeInterval )
    End Sub 

    Sub Main( )

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

        GenTimeSpanFromDays( 0.000000006 )
        GenTimeSpanFromDays( 0.000000017 )
        GenTimeSpanFromDays( 0.000123456 )
        GenTimeSpanFromDays( 1.234567898 )
        GenTimeSpanFromDays( 12345.678987654 )
        GenTimeSpanFromDays( 0.000011574 )
        GenTimeSpanFromDays( 0.000694444 )
        GenTimeSpanFromDays( 0.041666666 )
        GenTimeSpanFromDays( 1 )
        GenTimeSpanFromDays( 20.84745602 )
    End Sub 
End Module 

' This example of TimeSpan.FromDays( Double )
' generates the following output.
' 
'              FromDays          TimeSpan
'              --------          --------
'                 6E-09          00:00:00.0010000
'               1.7E-08          00:00:00.0010000
'           0.000123456          00:00:10.6670000
'           1.234567898        1.05:37:46.6660000
'       12345.678987654    12345.16:17:44.5330000
'            1.1574E-05          00:00:01
'           0.000694444          00:01:00
'           0.041666666          01:00:00
'                     1        1.00:00:00
'           20.84745602       20.20:20:20.2000000

Commenti

Il value parametro viene convertito in millisecondi, che viene convertito in tick e il numero di tick viene usato per inizializzare il nuovo TimeSpanoggetto . Pertanto, value verrà considerato accurato solo al millisecondo più vicino. Si noti che, a causa della perdita di precisione del Double tipo di dati, questa conversione può causare un OverflowException oggetto per i valori vicini a ma ancora nell'intervallo di MinValue o MaxValue. In questo caso, ad esempio, un OverflowException oggetto nel tentativo seguente di creare un'istanza di un TimeSpan oggetto .

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

Si applica a

Vedi anche