cs_Shany
Messages postés29Date d'inscriptionsamedi 24 avril 2004StatutMembreDernière intervention 3 juin 2007
-
11 mai 2006 à 23:47
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
12 mai 2006 à 21:20
Salut tout le monde,
Je code avec Visual studio .net en C#. J'ai un petit problème. J'aimerais pouvoir stocker ma date système dans un tableau Pour compliquer un peu :
j'ai une form avec un bouton
pour chaque click sur le bouton, je veux stocker l'heure du click dans un tableau.
afin d'avoir au final : click1 => heure 1, click 2 => heure2, etc.
Je pensais faire une petite boucle for du style :
int i compteur 0;
for (click sur le bouton)
{
tab (i) = heure système;
compteur = compteur + 1;
i = i + 1;
}
le compteur doit me permettre de savoir le nombre de click total sur le bouton.
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 12 mai 2006 à 12:28
En .NET 1.1 tu ne peux pas utiliser les listes génériques comme dans mon exemple précédent, à la place utilise un ArrayList, c'est une collection d'objets, tu peux aussi créer ta propre liste fortement typée, c-à-d une liste de DateTime. La solution du tableau est valable uniquement si tu sais exactement combien de DateTime tu vas stocker car les tableaux ont une taille fixe contrairement aux listes..
// NET 1.1
public partial class Form1 : Form
{
private ArrayList list = null;
public Form1( )
{
InitializeComponent( );
list = new ArrayList( );
this.button1.Click += new EventHandler( button1_Click );
this.button2.Click += new EventHandler( button2_Click );
}
private void button2_Click( object sender, EventArgs e )
{
// Affiche les dates contenues dans la liste.
foreach( DateTime dt in list )
MessageBox.Show( dt.ToLongTimeString( ) );
}
}
cs_Shany
Messages postés29Date d'inscriptionsamedi 24 avril 2004StatutMembreDernière intervention 3 juin 2007 12 mai 2006 à 01:32
Salut Lutinore,
Merci pour ta réponse, si j'ai bien compris je ne dois pas faire un tableau mais une liste contenant toutes les dates !? Cependant je me pose une petite question : le code devra -t-il être de ce style
namespace Z
{
public class A : System.Windows.Forms.Form
{
private DateTime HeureSys;
cs_Shany
Messages postés29Date d'inscriptionsamedi 24 avril 2004StatutMembreDernière intervention 3 juin 2007 12 mai 2006 à 17:45
Bonjour Lutinore,
Encore une fois merci pour tes répones. Toutefois, je ne vois pas pourquoi tu utilises un 2eme bouton pour afficher les dates contenu dans la liste. Je l'utiliserais plutôt pour faire mon calcul.
Ce que je voulais faire, c'est en cliquant sur le bouton1, je mémorise l'heure o moment du clique (ca c'est fait).
Par la suite je souhaite faire la différence entre les heures contenus dans la liste, du style :
Tant que (je ne suis pas à la fin de la liste)
{
diff = heure2 - heure1
}
Mais le problème qui va se poser est que je n'orais pas toutes les différences entre mes 2 valeurs.
Faudrait-il que je crée une autre liste pour les stocker et à ce moment pourrais-je faire la somme de ces valeurs !??
Voici comment je vois le code :
public class Form1 : Form
{
private ArrayList list = null;
private ArrayList list2 = null;
public Form1( )
{
InitializeComponent( );
list = new ArrayList( );
this.button1.Click += new EventHandler( button1_Click );
this.button2.Click += new EventHandler( button2_Click );
cs_Shany
Messages postés29Date d'inscriptionsamedi 24 avril 2004StatutMembreDernière intervention 3 juin 2007 12 mai 2006 à 18:32
Euh non parce que ce que je veux c'est avoir la moyene, c'est à dire savoir en moyenne combien de temps je mets entre 2 click. Si je fais comme tu me dis la différence entre le premier et le dernier click celà ne me donnera pas le résultat souhaité !!
Je ne sais toujours pas comment arranger ce petit problème. Je ne vois pas comment parcourir la liste et faire la différence entre les dates pour en avoir la somme.
Si j'arrive à résoudre ce seul et dernier problème, mon application sera sauvée et je ne serais plus desespérée.
Moi qui pensais que celà aurais été simple à faire, je constate que c'est plus compliqué que prévu, mais je ne vais pas baisser les bras.
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 12 mai 2006 à 21:20
Si c'est juste pour la moyenne ont peut essayer de se passer de la liste :
public class Form1 : Form
{
private long time = 0;
private long span = 0;
private int count = 0;
public Form1( )
{
InitializeComponent( );
this.button1.Click += new EventHandler( button1_Click );
this.button2.Click += new EventHandler( button2_Click );
}
private void button1_Click( object sender, EventArgs e )
{
if ( time == 0 )
{
time = DateTime.Now.Ticks;
}
else
{
long now = DateTime.Now.Ticks;
span += now - time;
time = now;
}