Avatar billede Skynet Mester
12. april 2008 - 15:38 Der er 24 kommentarer og
1 løsning

aflæs en monthCalendar?

Hej, jeg er i gang med at bruge en kalender i C# VS 2008.

Jeg har to problemer, jeg vil gerne have at datoen bliver gemt som en Int og ikke Sting

Når jeg kalder den, får jeg dd-dd-åå 00:00:00 jeg ønsker ikke at have tiden med, kun dato

private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
       
{
            i = monthCalendar1.SelectionRange.Start.ToString();
            Feedback.Text = i;
}
Avatar billede w13 Novice
12. april 2008 - 15:49 #1
Et integer kan ikke indeholde bindestreger, derfor kan det ikke lade sig gøre.
Avatar billede mcnovy Nybegynder
12. april 2008 - 15:53 #2
gem i int.
            int Dag = monthCalendar1.SelectionStart.Day;
            int Maaned = monthCalendar1.SelectionStart.Month;
            int aar = monthCalendar1.SelectionStart.Year;

            label1.Text = aar.ToString() + " " + Maaned.ToString() + " " + Dag.ToString();
Avatar billede w13 Novice
12. april 2008 - 15:54 #3
Men ang. dit andet spørgsmål, kan du prøve at ændre:
.ToString();
til:
.ToLongDateString();
Avatar billede mcnovy Nybegynder
12. april 2008 - 15:56 #4
og hvis du kun skal bruge datoen, så kan du bruge denne

monthCalendar1.SelectionStart.ToShortDateString();
Avatar billede Slettet bruger
12. april 2008 - 15:57 #5
Det nærmeste du kommer er dette:

void MonthCalendar1DateChanged(object sender, DateRangeEventArgs e)
        {
            string Dato = monthCalendar1.SelectionRange.Start.ToString("ddMMyyyy");
           
            i = int.Parse(Dato);
        }
Avatar billede mcnovy Nybegynder
12. april 2008 - 15:58 #6
ToShort skriver det sådan her

12-04-2008
og ToLong skriver det sådan her
12. April 2008
Avatar billede Skynet Mester
12. april 2008 - 16:17 #7
tak, alle metoderne virker. Så jeg giver alle points

Tak for hjælpen
Avatar billede w13 Novice
12. april 2008 - 16:18 #8
Ikke til mig, tak.
Avatar billede arne_v Ekspert
12. april 2008 - 16:21 #9
Jeg ville gemme som DateTime eller long (ticks).

Brug af int (ddMMyyyy) holder ikke. Bl.a. vil der blive en del bøvl med dd < 10.

Og String giver også ekstra arbejde senere.
Avatar billede Slettet bruger
12. april 2008 - 16:34 #10
Ellers kan man have 3 forskellige variabler:

void MonthCalendar1DateChanged(object sender, DateRangeEventArgs e)
        {
            int Dato = int.Parse(monthCalendar1.SelectionRange.Start.ToString("dd"));
            int Maaned = int.Parse(monthCalendar1.SelectionRange.Start.ToString("MM"));
            int year = int.Parse(monthCalendar1.SelectionRange.Start.ToString("yyyy"));

        }
Avatar billede mcnovy Nybegynder
12. april 2008 - 17:57 #11
giv du bare mine point til kaloer :)

hans er den pæneste metode,
men udover det ville jeg lige tænke over det arne_v skriver..
Avatar billede Slettet bruger
12. april 2008 - 18:06 #12
Jeg lægger et svar.
Hvis du skal checke om en dato er lig med en dato kan du gøre det sådan:

eks/ Hvis datoen er lig med d. 12. april 2008

void MonthCalendar1DateChanged(object sender, DateRangeEventArgs e)
        {
            int Dato = int.Parse(monthCalendar1.SelectionRange.Start.ToString("dd"));
            int Maaned = int.Parse(monthCalendar1.SelectionRange.Start.ToString("MM"));
            int Aar = int.Parse(monthCalendar1.SelectionRange.Start.ToString("yyyy"));

            if(Dato == 12 && Maaned == 4 && Aar == 2008)
            {
                // Den valgte dato er d. 12. april 2008
            }
        }
Avatar billede Skynet Mester
12. april 2008 - 18:29 #13
ok, jeg tænker på at lave en version hvor man på den ene kalender vælger en fra dato og på en anden vælger en til, hvis I har lavet det før, kunne det være fedt at se et eksempel, ellers begiver jeg mig i krig med det om lidt :)
Avatar billede Skynet Mester
12. april 2008 - 18:35 #14
void MonthCalendar1DateChanged(object sender, DateRangeEventArgs e)
        {
            int FraDato = int.Parse(monthCalendar1.SelectionRange.Start.ToString("dd"));
            int FraMaaned = int.Parse(monthCalendar1.SelectionRange.Start.ToString("MM"));
            int Frayear = int.Parse(monthCalendar1.SelectionRange.Start.ToString("yyyy"));

        }

void MonthCalendar2DateChanged(object sender, DateRangeEventArgs e)
        {
            int TilDato = int.Parse(monthCalendar1.SelectionRange.Start.ToString("dd"));
            int TilMaaned = int.Parse(monthCalendar1.SelectionRange.Start.ToString("MM"));
            int Tilyear = int.Parse(monthCalendar1.SelectionRange.Start.ToString("yyyy"));

        }

private void button6_Click(object sender, EventArgs e)
        {
          label1.text = "fra" + FraDato + FraMaaned + FraAar + TilDato + TilMaaned + TilAar;

        }
Avatar billede Skynet Mester
12. april 2008 - 18:36 #15
Jeg ved ikke om den virker, men synes det virker som en logisk måde..
Avatar billede Skynet Mester
12. april 2008 - 19:52 #16
Så fik jeg testet og rettet lidt i mine taste fejl..

private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
     

        {

        Fradag = monthCalendar1.SelectionStart.Day;
            Framaaned = monthCalendar1.SelectionStart.Month;
        Fraaar = monthCalendar1.SelectionStart.Year;
 
      }

        private void monthCalendar2_DateChanged(object sender, DateRangeEventArgs e)
        {
            Tildag = monthCalendar2.SelectionStart.Day;
            Tilmaaned = monthCalendar2.SelectionStart.Month;
            Tilaar = monthCalendar2.SelectionStart.Year;
        }

private void button5_Click(object sender, EventArgs e)
{
label1.Text = "Fra denne dato:" + Fraaar.ToString() + " " + Framaaned.ToString() + " " + Fradag.ToString();
    Tildato.Text = "Til denne dato:" + Tilaar.ToString() + " " + Tilmaaned.ToString() + " " + Tildag.ToString();

}
Avatar billede mcnovy Nybegynder
12. april 2008 - 20:13 #17
men er der nogen grund til at du ikke bare skriver det sådan her..?

        DateTime _Fra_Dato = monthCalendar1.SelectionStart;
        DateTime _Til_Dato = monthCalendar2.SelectionStart;

            label1.Text = "Fra Denne Dato " + _Fra_Dato.ToShortDateString() + "\n" + "Til Denne Dato" + _Til_Dato.ToShortDateString();
Avatar billede mcnovy Nybegynder
12. april 2008 - 20:14 #18
altså, at du ikke bruger DateTime klassen, istedet for int..?
Avatar billede Skynet Mester
12. april 2008 - 20:43 #19
DateTime klassen kendte jeg ikke, kan godt se det er hurtigere. Jeg søgte i help i starten og kunne ikke lige finde den, jeg søgte på "monthCalendar" i Contents.

Men med DateTime klassen, behandlder den så dataerne som integers, altså så jeg kan sammenligne dem med andre datoer?
Avatar billede Slettet bruger
12. april 2008 - 20:55 #20
Nej, du bliver nødt til at bruge den men int hvis du skal sammenligne dem.
Avatar billede arne_v Ekspert
12. april 2008 - 21:09 #21
Man kan sagtens sammenligne DateTime's.
Avatar billede Slettet bruger
12. april 2008 - 21:14 #22
Det vidste jeg ikke. Hvordan gør man det?
Avatar billede arne_v Ekspert
12. april 2008 - 21:27 #23
Lige ud af landevejen.

DateTime overloader ==, !=, <, >, <= og >= ...
Avatar billede Slettet bruger
12. april 2008 - 21:34 #24
Okay. Så fik jeg også lært noget nyt :)
Avatar billede Skynet Mester
18. april 2008 - 19:35 #25
Hey, hvis der er nogle af Jer som ved hvordan man laver data binding med en monthCalendar, vil det være en stor hjælp hvis I vil prøve at kigge på mit spørgsmål her: http://www.eksperten.dk/spm/828328
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester