IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Zedgraph valeur en fonction d'une date


Sujet :

C#

  1. #1
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 994
    Points : 2 216
    Points
    2 216
    Par défaut Zedgraph valeur en fonction d'une date
    Bonjour

    J'ai un fichier CSV avec des lignes très simples avec une date et une valeur (0 ou 1 ou un décimal suivant les cas).
    Je souhaite tracer une courbe avec les valeurs en ordonnées et la date en abscisse.

    Le fichier toto.csv contient par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    04/06/10 19:01:27;1; 
    04/06/10 19:01:35;2;
    04/06/10 19:01:43;14;
    04/06/10 19:01:50;16;
    04/06/10 19:02:52;12;
    04/06/10 19:03:00;1;
    On voit que ma date contient le jour, le mois, l'année mais aussi heure,minutes et secondes

    J'arrive à lire mon fichier et a extraire dans un tableau de string le contenu de chaque ligne avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    StreamReader MonFichier = new streamReader(@"C:\toto.csv");
    while (!MonFichier.EndOfStream) 
                {
                    LigneEnCours = MonFichier.ReadLine(); 
                    string[] Array = LigneEnCours.Split(';');
    mais je n'arrive pas à remplir une "liste" pour créer une courbe zedgraph.

    Dans tous les exemples de zedgraph je vois la déclaration d'une liste de doubles qui sert à saisir les données pour le graph
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PointPairList list = new PointPairList();
    Mon problème et que je n'arrive pas voir comment faire rentrer ma date dans un double pour pouvoir afficher dans zedgraph la date complète, de l'année jusqu'aux secondes.

    J'ai entre autre essayé de convertir la date en double ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date2 = double.Parse(Array[0]);
    c'est ce qui me parait le moins stupide mais ca ne passe pas.

    Merci par avance pour votre aide

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 766
    Points
    766
    Par défaut
    Dans un application j'affiche aussi des données en fonction d'une date. La date est sur l'axe des X. Je note mes données sur l'axe des X de 1 à .... Mais j'utilise un List<string> comme étiquette sur mon axe. Donc visuellement c'est les dates que j'affiche.

    Extrait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    List<string> xLabel = new List<string>();
    PointPairList pplDwl = new PointPairList();
    int i;
    [..]
    for (i = 0; i < data.Count; i++)
    {
    	xLabel.Add(data[i].Day.ToString("dd MMMM"));
    	pplDwl.Add(new PointPair((double)i, data[i].Download, String.Empty));
    }
    [..]
    myPane.XAxis.Scale.TextLabels = xLabel.ToArray();
    En espérant que ça t'aide.

  3. #3
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 994
    Points : 2 216
    Points
    2 216
    Par défaut
    bonjour et merci pour la réponse

    j'ai trouvé dans les exemples de zedgraph que l'on peut mettre un axe en échelle date.

    si je trace mon graph en mettant dans la list(double,double), les dates au format décimal du Datetime j'obtiens exactement la courbe que je veux.

    Mon problème devient donc de convertir la date au format texte (ex : 04/06/2010 19:01:27) en sa valeur décimale (ex :40333,792673611100)

    Merci

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 766
    Points
    766
    Par défaut
    Utilise la fonction "DateTime.ParseExact".

  5. #5
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 994
    Points : 2 216
    Points
    2 216
    Par défaut
    Je butte toujours sur un problème de format

    je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double date;
    date = (double)(DateTime.ParseExact(Array[0],"dd/MM/yyyy HH:mm:ss",null));
    ca me dit que je ne peux pas convertir un system.datetime en double

    exactement ce que j'ai comme message apres avoir faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    double date;
    DateTime date2;
    date2 = DateTime.Parse(Array[0]);
    date = (double)(date2);


    Rappel : je veux convertir un string qui contient "04/06/2010 19:01:27" en sa valeur décimale 40333,792673611100 dans un double

  6. #6
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Je dirais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double value = DateTime.ParseExact(Array[0], "dd/MM/yyyy HH:mm:ss", null).ToOADate();
    C'est la seule méthode renvoyant un double. Après si cela ne correspond pas il faudra le faire toi même.

  7. #7
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 994
    Points : 2 216
    Points
    2 216
    Par défaut
    Bonjour

    Ça fait juste ce que je veux maintenant, merci !

    Dernier petit coup de pouce svp
    Je suis perdu avec l'aide en ligne de visual studio 2008.
    Meme maintenant que je sais que ToOADate existe est est une méthode de ParseExact, je n'arrive pas à trouver ToOADate quand je fais F1 sur ParseExact.

    Comment aurais je pu me débrouiller tout seul avec l'aide pour trouver le ToOADate ?

    Merci encore

  8. #8
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par petitours Voir le message
    Meme maintenant que je sais que ToOADate existe est est une méthode de ParseExact, je n'arrive pas à trouver ToOADate quand je fais F1 sur ParseExact.

    Comment aurais je pu me débrouiller tout seul avec l'aide pour trouver le ToOADate ?
    La méthode ToOADate n'est pas une méthode de ParseExact. ToOADate et ParseExact sont des méthodes de la structure DateTime. Et c'est cette dernière que tu aurais du rechercher dans l'aide pour chercher dans la liste de ses méthodes par exemple

    ParseExact renvoi un objet DateTime et, dans l'exemple de code, c'est sur cet objet que l'on appelle ensuite ToOADate, sans passer par un intermédiaire.

  9. #9
    Membre chevronné Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    1 994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 994
    Points : 2 216
    Points
    2 216
    Par défaut
    Merci pour les précisions

    Et pour le lien, quand je fais F1 sur un mot de mon code je n'arrive pas du tout la dessus, beaucoup mieux là !

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. url en fonction d'une date
    Par silwebdesign dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 18/09/2006, 19h41
  2. Déterminer le jour en fonction d'une date
    Par Flagny dans le forum Access
    Réponses: 3
    Dernier message: 19/07/2006, 10h36
  3. afficher le jour en fonction d'une date
    Par oceane751 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 05/03/2006, 22h20
  4. [Dates] message en fonction d'une date
    Par chouchouboy dans le forum Langage
    Réponses: 14
    Dernier message: 24/02/2006, 17h31
  5. Réponses: 2
    Dernier message: 03/10/2005, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo