Avatar billede trine_h Nybegynder
01. marts 2005 - 00:10 Der er 8 kommentarer og
1 løsning

dato spørgsmål

Jeg har et ugeskema - hvor jeg ved eks. søndag skal finde datoen på næste søndag og returnere det som en streng. Hvordan gøres det? altså jeg har en ugedag eks. søndag som jeg skal finde datoen for den efterfølgende søndag på. øh lidt forvirrende beskrevet - håber nogen forstår.
Avatar billede spif2001 Nybegynder
01. marts 2005 - 08:29 #1
string s = DateTime.Now.AddDays(7).ToShortDateString();
Avatar billede spif2001 Nybegynder
01. marts 2005 - 08:30 #2
Hvor datoen selvfølgelig er den den du aktuelt ligger inde med.

DateTime dt = //sæt datoen;
string s = dt.AddDays(7).ToShortDateString();
Avatar billede trine_h Nybegynder
01. marts 2005 - 11:40 #3
Det var lidt sent - og mit spørgsmål er desværre beskrevet forkert! Scriptet skal fungere sådan at er det tirsdag eller onsdag for eksempel - og søndag dukker op i ugeskemaet så skal jeg finde datoen for den efterfølgende søndag. altså for hver dag der dukker op skal det altid være den nærmeste dato for den dag . Stadigvæk lidt forvirret formuleret. Håber betydningen fremstår nogenlunde.
Avatar billede hagbardph3 Nybegynder
01. marts 2005 - 12:56 #4
DateTime org = new DateTime(2005, 2, 13);
DateTime sondag = org.AddDays(7 - System.Convert.ToInt32(org.DayOfWeek.ToString("D")));
string s = sondag.ToString("yyyy-MM-dd");

(org datoen kan selvfølgelig også være DateTime.Now)
Avatar billede trine_h Nybegynder
01. marts 2005 - 15:28 #5
hagbard - er ikke helt sikker på jeg forstår dit svar. Men meningen er at jeg har eks. var. søndag den skal jeg så have konverteret om til datoen på den nærmeste søndag.
Avatar billede hagbardph3 Nybegynder
01. marts 2005 - 19:56 #6
Hey - Ok jeg læste det som om du ville have datoen for den først kommende søndag. s vil i mit eks. altid indeholde datoen for den først kommende søndag set ud fra org datoen. Jeg må have misforstået din problemformulering!
Avatar billede arne_v Ekspert
01. marts 2005 - 22:43 #7
using System;

class MainClass
{
    public static DateTime NextSunday(DateTime dt)
    {
        DateTime res = dt;
        do
        {
            res = res.AddDays(1);
        } while(res.DayOfWeek != DayOfWeek.Sunday);
        return res;
    }
    public static DateTime PrevSunday(DateTime dt)
    {
        DateTime res = dt;
        do
        {
            res = res.AddDays(-1);
        } while(res.DayOfWeek != DayOfWeek.Sunday);
        return res;
    }
    public static DateTime NearSunday(DateTime dt)
    {
        if(dt.DayOfWeek == DayOfWeek.Sunday)
        {
            return dt;
        }
        DateTime next = NextSunday(dt);
        DateTime prev = PrevSunday(dt);
        if(next - dt < dt - prev)
        {
            return next;
        }
        else
        {
            return prev;
        }
    }
    public static void Test(DateTime dt) {
        Console.WriteLine(dt.ToShortDateString() + " " +
                          PrevSunday(dt).ToShortDateString() + " " +
                          NextSunday(dt).ToShortDateString() + " " +
                          NearSunday(dt).ToShortDateString());
    }
    public static void Main(string[] args)
    {
        Test(DateTime.Parse("1-Mar-2005"));
        Test(DateTime.Parse("2-Mar-2005"));
        Test(DateTime.Parse("3-Mar-2005"));
        Test(DateTime.Parse("27-Feb-2005"));
    }
}

giver:

01-03-2005 27-02-2005 06-03-2005 27-02-2005
02-03-2005 27-02-2005 06-03-2005 27-02-2005
03-03-2005 27-02-2005 06-03-2005 06-03-2005
27-02-2005 20-02-2005 06-03-2005 27-02-2005
Avatar billede trine_h Nybegynder
01. marts 2005 - 23:44 #8
endnu engang arne_v - rigtig godt svar - læg et svar - du får pointene. Tak for hjælpen
Avatar billede arne_v Ekspert
01. marts 2005 - 23:45 #9
ok
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