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 :

Formater mon Datetime pour le graphique google Chart


Sujet :

C#

  1. #1
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Par défaut Formater mon Datetime pour le graphique google Chart
    Bonjour,

    j´aimerai enlever l´heure que me renvoie mon datetime en C# en l'occurrence chez moi c'est 12AM cad Minuit. et formater l´axe des X de mon google Chart de la maniere suivante("dd/MM/yyyy"). j´utilise ASP.NET Web Forms Application.

    j´ai essayer les codes suivantes dans la partie du programme "WenForm1.aspx.cs"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
         foreach (DataRow row in dsChartData.Rows)  
                {
               row["Datum"] = DateTime.Parse(String.Format("{0}:dd.MM.yyyy", row["Datum"]));// a ce niveau le programme ne s´execute pas 
                    strScript.Append("['" + row["Datum"] + "'," + row["F1"] + "," + row["F2"] + "," + row["F3"] +"],");}  
     strScript.Append
    ("var options = {hAxis: format: 'dd/MM/yyyy',};// sa ne fonctionne pas
     
      strScript.Append("var formatter = new google.visualization.DateFormat({pattern: 'dd/MM/yyyy'});");//sa ne fonctionne pas
    Au niveau de du code "WebForm1.aspx" j ´ai essayé les lignes suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="VersuchAsp3.WebForm1" %>
     <div>  
            <script type="text/javascript" src="https://www.google.com/jsapi"></script>  
            <asp:GridView ID="gvData" runat="server" >  
            </asp:GridView>  
            <asp:boundfield datafield="gvData" HeaderText ="gvdata" dataformatstring="{0:dd-MM-yyyy}" htmlencode="false" />
            <br />  
            <br />  
            <asp:Literal ID="ltScripts" runat="server"></asp:Literal>  
            <div id="chart_div" style="width: 800px; height: 600px;">  
            </div>
    voila comment le Datetime s´affiche sur le graphique.j aimerais enlever les heures(12AM)
    Nom : s10.jpg
Affichages : 357
Taille : 184,5 Ko
    merci d´avance
    cordialement

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par maeva87 Voir le message
    j´aimerai enlever l´heure que me renvoie mon datetime en C# en l'occurrence chez moi c'est 12AM cad Minuit
    Ce n'est pas que chez toi, c'est un fonctionnement standard. Il y a plusieurs possibilités :

    1. Si tu veut que le format soit affiché en fonction de la langue :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var dateTime = taValeur.ToShortDateString();
     
    // Un équivalent :
    var dateTime2 = taValeur.ToString("d");

    2. Si ton format est fixe et ne doit pas changer en fonction de la langue :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    var dateTime3 = taValeur.ToString("dd/MM/yyyy");

    Pour info : Standard Date and Time Format Strings
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Par défaut
    lorsque j´écrit les lignes suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach (DataRow row in dsChartData.Rows)  
                {
                    //row["Datum"] = DateTime.Parse(String.Format("{0}:dd.MM.yyyy", row["Datum"]));
                    var datetime = row["Datum"].ToString("dd/MM/yyyy");
                    row["Datum"] = datetime;
                    strScript.Append("['" + row["Datum"] + "'," + row["F1] + "," + row["F1"] + "," + row["F2"] +"],");     
                }
    j´obtiens l´erreur suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error 8	No overload for method 'ToString' takes 1 arguments	// je ne peut pas donner d´argument
    var datetime = row["Datum"].ToString(); // me renvoie le string suivant "1/26/2015 12:00:00 AM"
    merci

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    C'est normal il faut d'abord que tu castes ta variable en DateTime. Quelque chose comme ceci devrait faire l'affaire :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var datetime = new DateTime();
    if (DateTime.TryParse(row["Datum"], out datetime))
    {
        row["Datum"] = datetime.ToString("dd/MM/yyyy");
    }
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Par défaut
    merci,
    mais le if ne passe pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     if (DateTime.TryParse(row["Datum"], out datetime))
    Error	9	Argument 1: cannot convert from 'object' to 'string'	
    Error	8	The best overloaded method match for 'System.DateTime.TryParse(string, out System.DateTime)' has some invalid arguments

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Un petit effort Comme tu peux le voir dans l'erreur, la méthode TryParse attend un string comme premier paramètre, or row["Datum"] est de type object. Donc il suffit de modifier comme ceci :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    if (DateTime.TryParse(row["Datum"].ToString(), out datetime))
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  7. #7
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Par défaut
    Merci DotNetMatt,
    je crois que tout y est je ne reçois aucune erreur. seulement apres execution du if, le programme va directement sur la fonction catch et n´execute plus le reste du Programme. par consequent mon graphique n´apparait plus sur ma page Web
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    try  
            {   foreach (DataRow row in dsChartData.Rows)  
                {
                    var datetime = new DateTime();
                    if (DateTime.TryParse(row["Datum"].ToString(), out datetime))
                    {
                        row["Datum"] = datetime.ToString("dd/MM/yyyy");
                    } // a ce niveau le programme va directement sur la fonction catch
        //suite du programme
                } 
    }
     catch  
            {  
            }
    merci

  8. #8
    Membre émérite
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Par défaut
    Il faut que tu catch l'exception. Tu aura plus d'informations, car la on ne peut pas t'aider on ne sait pas ce qu'il y a dans row["Datum"]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    catch (Exception ex)
    {
    //L'afficher ou regarder en debug...
    }

  9. #9
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Par défaut
    salut,
    voila l erreur que l exeception affichait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String was not recognized as a valid DateTime.Couldn't store <26/01/2015> in Datum Column.  Expected type is DateTime.
    j´ai dont changer le Datetime Format comme dans dans row["Datum"] a savoir "MM/dd/yyyy" le progamme s est executer mais les heures y sont toujours. aucun changement sur l´axe des X.
    Nom : s12.jpg
Affichages : 382
Taille : 188,1 Ko
    merci d´avance
    cordialement

  10. #10
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Par défaut
    comme vous pouvez le constatez sur l´image suivante la variable datetime est bien filtrée. var d = datetime.ToString("MM/dd/yyyy"); // donne bien "01/26/2015" (voir en dessous de la foto(debug)) mais celle ci n est pas transferer a row["Datum"] bienque la commande est envoyer. c est bizarre qu´a memeNom : s12.jpg
Affichages : 355
Taille : 425,3 Ko

  11. #11
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Par défaut
    Bonjour,
    sa fonctionne bien maintenant. j´ai tout simplement remplacer le "row["Datum"]" par la variable "date" au niveau de la commande "strScript.Append" et j ai mis le tout dans la boucle if.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var datetime = new DateTime();
    if (DateTime.TryParse(row["Datum"].ToString(), out datetime))
    {
        row["Datum"] = datetime.ToString("dd/MM/yyyy");
        var date = datetime.ToString("MM/dd/yyyy");
     strScript.Append("['" + date + "'," + row["F1"] + "," + row["F2"] + "," + row["F3"] +"],");}  
    }
    Merci beaucoup pour votre aide

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

Discussions similaires

  1. [Autres] Boucle sur graphique google chart
    Par triaguae dans le forum APIs Google
    Réponses: 26
    Dernier message: 07/04/2013, 15h01
  2. Réponses: 2
    Dernier message: 05/02/2013, 15h17
  3. Réponses: 4
    Dernier message: 24/01/2012, 08h54
  4. Réponses: 13
    Dernier message: 27/10/2007, 00h12
  5. [CSS] logiciel pour dev sa propre charte graphique...
    Par luta dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 14/11/2005, 11h55

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