domenica 9 aprile 2017

DateTime and TimeSpan



Gli utilizzi più frequenti di informazioni su data e ora comprendono:
- indicare solo una data, perchè l'ora è ininfluente, e viceversa;
- indicare una data e un'ora astratte;
- recuperare informazioni su data e ora da fonti esterne a NET.Framework;
- identificare in modo univoco un singolo momento;
- eseguire operazioni aritmetiche per date e ore.
In quest'ottica, DateTime e TimeSpan rientrano tra le diverse strutture disponibili nel .NET Framework per compilare applicazioni che richiedono l'utilizzo di date e ore.

STRUTTURA DATETIME

Un valore DateTime definisce una data e un'ora specifiche.
La struttura DateTime è adatta per le applicazioni che:
- utilizzano solo date;
- utilizzano solo ore;
- utilizzano date e ore astratte;
- recuperano informazioni su data e ora da fonti esterne a .NET Framework;
- eseguono operazioni aritmetiche su date e ore.
La sintassi:

VB.NET
<SerializableAttribute>
Public Structure DateTime Implements IComparable, IFormattable, IConvertible, ISerializable, IComparable(Of Date), IEquatable(Of Date)

C#
[SerializableAttribute]
public struct DateTime : IComparable, IFormattable, IConvertible, 
 ISerializable, IComparable<DateTime>, IEquatable<DateTime>

DateTime() inizializza una nuova istanza della struttura DateTime con argomenti dall'anno al millisecondo, con la possibilità di indicare l'ora locale.

Esempi in VB.NET:
1) Dim date1 As New Date(2008, 5, 1, 8, 30, 52)
 
2) Public Shared Sub Main()
      Dim window As Integer = 10
      Dim freq As Integer = 60 * 60 * 2 ' 2 hours;
      Dim d1 As DateTime = DateTime.Now

      Dim d2 As DateTime = d1.AddSeconds((2 * window))
      Dim d3 As DateTime = d1.AddSeconds((- 2 * window))
      Dim d4 As DateTime = d1.AddSeconds((window / 2))
      Dim d5 As DateTime = d1.AddSeconds((- window / 2))

      Dim d6 As DateTime = d1.AddHours(2).AddSeconds((2 * window))
      Dim d7 As DateTime = d1.AddHours(2).AddSeconds((- 2 * window))
      Dim d8 As DateTime = d1.AddHours(2).AddSeconds((window / 2))
      Dim d9 As DateTime = d1.AddHours(2).AddSeconds((- window / 2))
End Sub


STRUTTURA TIMESPAN

La struttura TimeSpan rappresenta un intervallo di tempo e viene utilizzata per:
- indicare l'intervallo di tempo tra due valori di data e ora (ad esempio, DateTime - DateTime);
- misurare il tempo trascorso da un dato istante.

È possibile aggiungere o sottrarre le durate attrverso l'utilizzo degli operatori Addition e Subtraction, oppure utilizzando i metodi Add e Subtract. È anche possibile confrontare due durate utilizzando i metodi Compare, CompareTo e Equals.
L'intervallo del TimeSpan è dato dai valori MinValue e MaxValue.

La sintassi:

VB.NET
<SerializableAttribute>
<ComVisibleAttribute(True)>
Public Structure TimeSpan
 Implements IComparable, IComparable(Of TimeSpan), IEquatable(Of TimeSpan),
 IFormattable
C#
[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct TimeSpan : IComparable, IComparable<TimeSpan>, 
       IEquatable<TimeSpan>, IFormattable

Esempi in VB.NET:
1) TimeSpan interval = new TimeSpan(2, 14, 18);
Console.WriteLine(interval.ToString());
2) Public Sub Main()
      Dim timeSpent As TimeSpan = TimeSpan.Zero

      timeSpent += GetTimeBeforeLunch()
      timeSpent += GetTimeAfterLunch()

      Console.WriteLine("Total time: {0}", timeSpent)
   End Sub

   Private Function GetTimeBeforeLunch() As TimeSpan
      Return New TimeSpan(rnd.Next(3, 6), 0, 0)
   End Function

   Private Function GetTimeAfterLunch() As TimeSpan
      Return New TimeSpan(rnd.Next(3, 6), 0, 0)
   End Function


Nessun commento:

Posta un commento