Countdown ad una data

lunedì 05 maggio 2008 - 14.13

Nerom Profilo | Newbie

Salve a tutti!
Come da titolo, vorrei realizzare un'applicazione che data una certa data (scusate il gioco di parole) come input e premendo un pulsante "Avvia", esegua un conto alla rovescia di anni,mesi,giorni,ore,minuti e secondi fino a raggiungere lo 0.
Ora ho dato un'occhiata al componente Timer in Visual Studio VB2005 ma non è che ci abbia capito molto.
Dove posso dare uno sguardo per capire come venirne a capo di quest'applicazione?

Grazie mille in anticipo a tutti, ogni tipo di aiuto è più che gradito ^^
Au revoir,
Nerom.

Brainkiller Profilo | Guru

>Salve a tutti!
>Come da titolo, vorrei realizzare un'applicazione che data una
>certa data (scusate il gioco di parole) come input e premendo
>un pulsante "Avvia", esegua un conto alla rovescia di anni,mesi,giorni,ore,minuti
>e secondi fino a raggiungere lo 0.

E' abbastanza semplice.

>Ora ho dato un'occhiata al componente Timer in Visual Studio
>VB2005 ma non è che ci abbia capito molto.
>Dove posso dare uno sguardo per capire come venirne a capo di
>quest'applicazione?

Il componente Timer non fa altro che far scattare l'evento Tick ogni qual volta passano i millisecondi specificati nella proprietà Interval. A quel punto tu puoi gestire la differenza tra date con le classi DateTime e TimeSpan.

Esempio:

DateTime dt=DateTime.Now; DateTime domani=DateTime.Now.AddDays(1); TimeSpan ts=domani-dt;

A questo punto TimeSpan conterrà la differenza di tempo tra dt e domani. TimeSpan ha varie proprietà tra cui TotalSeconds (differenza convertita tutta in secondi) oppure Seconds, Minutes, Days, Hours, ecc.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Nerom Profilo | Newbie

Prima di tutto scusa se ti rispondo solo ora!
Ho guardato per bene il timer, però ancora non riesco a capire come prendere lo scatto. Cioè se io setto il periodo del tick a 1000 (1 sec), dove vado a prendere il valore per scriverlo eventualmente in una label?
Non mi ancora ancora per nulla chiaro questo timer

Brainkiller Profilo | Guru

>Prima di tutto scusa se ti rispondo solo ora!
>Ho guardato per bene il timer, però ancora non riesco a capire
>come prendere lo scatto. Cioè se io setto il periodo del tick
>a 1000 (1 sec), dove vado a prendere il valore per scriverlo
>eventualmente in una label?

All'interno della tua classe puoi definire una variabile privata (private) di tipo DateTime.

All'interno dell'evento Load della Form la valorizzi con la data da cui vuoi partire per fare il countdown.

All'interno dell'evento Tick del Timer fai la differenza tra la data attuale cioè DateTime.Now e la data scadenza e con il TimeSpan ottieni la differenza che puoi visualizzare sulla Label secondo dopo secondo.

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Nerom Profilo | Newbie

Provo e ti faccio sapere!

-------------------------------
Provato e ci sono riuscito, sono cose che danno proprio soddisfazione xD
Grazie mille Brain!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5