Sub Scorrimento_Tick
Dim AllaScadenza, Adesso As Long
Dim Hours, Minutes, Seconds As String
Dim GiornoAttuale, OraAttuale As String
Adesso = DateTime.now : 'Memorizzo subito il tempo per evitare di usare tempi diversi nelle successive chiamate a DateTime.now
GiornoAttuale = DateTime.Date(Adesso)
OraAttuale = DateTime.Time(Adesso)
Dim date1, date2 As Long
date1 = DateTime.TimeParse(OraAttuale) + DateTime.GetTimeZoneOffsetAt(Adesso) * DateTime.TicksPerHour
date2 = DateTime.TimeParse("23:59:59")
AllaScadenza = date2 - date1
Seconds = NumberFormat(DateTime.GetSecond(AllaScadenza), 2, 0)
Minutes = NumberFormat(DateTime.GetMinute(AllaScadenza), 2, 0)
Hours = NumberFormat(DateTime.GetHour(AllaScadenza), 1, 0)
Msgbox("Mancano " & Hours & ":" & Minutes & ":" & Seconds & " alle 23:59:59", "Data e ora di adesso: " & GiornoAttuale & " " & OraAttuale)
Dim DurataSER As String
Dim GiornoScadenza, OraScadenza As String
Dim TempoScadenza, MillisecondiDaAgg As Long
Dim PrimoDuePunti, SecondoDuePunti As Int
Dim OreDaAgg, MinDaAgg, SecDaAgg As Int
DurataSER = "1:20:00"
PrimoDuePunti = DurataSER.IndexOf(":")
OreDaAgg = DurataSER.SubString2(0, PrimoDuePunti)
SecondoDuePunti = DurataSER.LastIndexOf(":")
MinDaAgg = DurataSER.SubString2(PrimoDuePunti + 1, SecondoDuePunti)
SecDaAgg = DurataSER.SubString2(SecondoDuePunti + 1, DurataSER.Length)
MillisecondiDaAgg = DateTime.TicksPerHour * OreDaAgg + DateTime.TicksPerMinute * MinDaAgg + DateTime.TicksPerSecond * SecDaAgg
TempoScadenza = DateTime.TimeParse(OraAttuale) + MillisecondiDaAgg
GiornoScadenza = DateTime.Date(TempoScadenza)
OraScadenza = DateTime.Time(TempoScadenza)
Msgbox("Scade il " & GiornoScadenza & " alle ore: " & OraScadenza, "Data e ora di adesso: " & GiornoAttuale & " " & OraAttuale)
End Sub