Comparaison de date C# Dot.net

spirit33 Messages postés 26 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 24 juillet 2009 - 18 juil. 2008 à 10:21
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 18 juil. 2008 à 20:48
Bonjour,

Je suis débutant en c# et je doit reprendre une application web pour y faire quelque modification.
Sur cette application j'ai des évènements avec des dates  mais dés que ces évènements dépassent  la date d'aujourd'hui, ils doivent être écrit en rouge.
Pour cela j'essaie de comparer la date d'aujourd'hui avec celle de l'évènement.
Mon problème est que la date de cette évènement est écrite par ceci dans le code en HTML:

<%# Eval("EventMaxEndDate","{0:d}")%>

J'aimerais savoir comment je pourrais récupérer cette date dans le code c# pour pouvoir la comparer.

Merci pour votre aide.

7 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
18 juil. 2008 à 10:59
Bonjour,

<%# CompareDate(Eval("EventMaxEndDate"))%>

public string CompareDate(DateTime dt)
{
  ...
}

<hr />
-My Blog-
0
spirit33 Messages postés 26 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 24 juillet 2009
18 juil. 2008 à 11:25
Bonjour Bidou,
Merci pour ta réponse rapide.
J'aimerais avoir une précision sur ce qui faut mettre en les crochés de CompareDate.

Merci pour ton aide.
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
18 juil. 2008 à 11:29
Quelque chose comme:

if(dt > DateTime.Now)
{
    return String.Format("{0:dd.MM.yyyy}, dt);
}
else return "...";

<hr />
-My Blog-
0
spirit33 Messages postés 26 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 24 juillet 2009
18 juil. 2008 à 12:24
Bonjour Bidou,

Malheureusement je n'arrive pas à faire fonctionner ton code.
Je pense que c parce que la date de mon évènement ce trouve dans un repeater.
voici le code Html :

                           
                               
                               
                               
                               
                                   
                                    &nbsp;
                                   
                                    &nbsp;
                                    '/>
                                    &nbsp;
                                    -
                                    &nbsp;
                                    '/>
                                    &nbsp;
                                    :
                                    &nbsp;
                                   
                                    '/>
                                    &nbsp;:&nbsp;<%# CompareDate(Eval("EventMaxEndDate"))%>
                               
                               
                                                       
                           
                       

et voici mon code C# :
protected void rptTodayEvents_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        bool Enable;
        bool ToEdit = true;
       

        if (e.Item.DataItem != null)
        {

            HyperLink link = (e.Item.FindControl("hlkLink") as HyperLink);
            Image img = (e.Item.FindControl("Image1") as Image);

            Label lblAdv = (e.Item.FindControl("lblAdv") as Label);
            Label lblCamp = (e.Item.FindControl("lblCamp") as Label);
            Label lbl = (e.Item.FindControl("lblLibEvent") as Label);

            Enable = Globals.CurrentUser.HasProfile(((CalendarEvent)e.Item.DataItem).ProfileId);

            if (((CalendarEvent)e.Item.DataItem).ToBeTreated)
            {
                //Affectation de couleur et d'image suivant le statut des données (Attente, Valider, Imcomplet, Retard, ...).
                if (!Enable)
                {
                    link.NavigateUrl = "Campaign/EventDetailsFromCalendar.aspx?_ID=" + ((CalendarEvent)e.Item.DataItem).EventId + "&_mode=" + DetailsViewMode.ReadOnly.ToString() + "&_from=Home";
                    //link.ForeColor = System.Drawing.Color.Gray;
                    lblAdv.ForeColor = System.Drawing.Color.Gray;
                    lblAdv.Font.Italic = true;
                    lblCamp.ForeColor = System.Drawing.Color.Gray;
                    lblCamp.Font.Italic = true;
                    lbl.ForeColor = System.Drawing.Color.Gray;
                    lbl.Font.Italic = true;
                }
                else
                {
                    link.NavigateUrl = "Campaign/EventDetailsFromCalendar.aspx?_ID=" + ((CalendarEvent)e.Item.DataItem).EventId + "&_mode=" + DetailsViewMode.Edit.ToString() + "&_from=Home";
                }

                if (((CalendarEvent)e.Item.DataItem).EventStatus == EventStatus.EventStatusEnum.EVENEFFECT.ToString())
                {
                    lblAdv.ForeColor = System.Drawing.Color.Green;
                    lblCamp.ForeColor = System.Drawing.Color.Green;
                    lbl.ForeColor = System.Drawing.Color.Green;
                    img.ImageUrl = "~/images/button_ok.gif";
                }
                else if (((CalendarEvent)e.Item.DataItem).EventStatus == EventStatus.EventStatusEnum.EVENINCOMP.ToString())
                {
                    lblAdv.ForeColor = System.Drawing.Color.Orange;
                    lblCamp.ForeColor = System.Drawing.Color.Orange;
                    lbl.ForeColor = System.Drawing.Color.Orange;
                    img.ImageUrl = "~/images/button_attente.gif";
                }
                //COMPARAISON DE DATE A FAIRE
                else
                {
                    img.ImageUrl = "~/images/button_Attvalide.gif";
                }

            }
            else
            {
                if (!Enable)
                    link.ForeColor = System.Drawing.Color.Gray;
               
                link.NavigateUrl = "Campaign/EventDetailsFromCalendar.aspx?_ID=" + ((CalendarEvent)e.Item.DataItem).EventId + "&_mode=" + DetailsViewMode.ReadOnly.ToString() + "&_from=Home";
               

                img.ImageUrl = "~/images/button_cancel.gif";

            }

        }
    }

Si tu as une idée de comment je pourrais adapter ton code.
Merci d'avance.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
18 juil. 2008 à 13:11
Ha tu es dans le ItemDataBound...
Dans ce cas tu récupères l'object courant avec le DataItem (comme tu l'as deja fait). C'est un Calendar?! A parti de là, tu peux récupérer la date sélectionnée....
Donc tu as une référence sur ta date.

Ensuite, si t'as un label où tu dois insérer ta date, tu fais un FindControl(tonLabelId), puis tu lui assignes la couleur en fonction de la date courante (voir mon 2ème poste).
J'espère que c'est clair

<hr />
-My Blog-
0
spirit33 Messages postés 26 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 24 juillet 2009
18 juil. 2008 à 15:49
J'ai essayer comme tu m'as dit mais je n'arrive toujours pas à récupérer ma date.

Si tu pouvais m'éclairer un peu plus.
Je te remercie de otute l'aide que tu m'apporte.
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
18 juil. 2008 à 20:48
Donne moi le code C# ou tu set le datasource (ou la requetes linq, c'est la meme chose)

<hr />
-My Blog-
0
Rejoignez-nous