Results 1 to 15 of 15

Thread: DayOfWeek in .NET als Integer

  1. #1
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415

    DayOfWeek in .NET als Integer

    Hoe kom ik achter de dag nummer in een week als ik een DateTime datum heb?

    Met DayOfWeek kan ik wel de dag in letters uit krijgen, maar ik heb de integer nodig.
    Anders

    May your code compile!

  2. #2
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    Code:
    function DayOfWeek(const DateTime: TDateTime): Word;


    Uses: D7 Pro

    [edit]
    oeps.. .NET
    Last edited by SvG; 24-Nov-04 at 14:00.
    !

  3. #3
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415
    Sorry niet helemaal duidelijk voor het .NET Framework - ASP.NET
    Anders

    May your code compile!

  4. #4
    Maar gelukkig heeft Borland de VCL voor .NET. In dat geval spiek ik daar dus gewoon even in en kijk ik wat zij van de functie DayOfWeek hebben gemaakt. In dit geval:
    Code:
    Result := ADateTime.DayOfWeek;
    Marcel

  5. #5
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415
    Nu bring je mij in verlegenheid - Ik dacht in een ASP.NET applicatie kan je toch niet VCLor .NET gebruiken?
    Anders

    May your code compile!

  6. #6
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    DayOfWeek is een enum met als underlying type Int32.
    In Delphi is dat dus: System.DateTime.DayOfWeek = (Sunday .. SaturDay);
    Je moet de enum dus converteren naar Int32 (of integer in Delphi) of casten :
    Code:
    var
      Vandaag: System.DateTime;
      ADay: DayOfWeek;
      ADayInt32: Int32;
      ADayInteger: integer;
    begin
      Vandaag := DateTime.Today;
      ADay := Vandaag.DayOfWeek;
      ADayInteger := integer(Vandaag.DayOfWeek);
      ADayInt32 :=  Convert.ToInt32(Vandaag.DayOfWeek);
      // of:
      ADayInt32 := Int32(Vandaag.DayOfWeek);
    end;
    All methodologies are based on fear. -- Kent Beck.

  7. #7
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    Oops!
    En in Delphi kan dat natuurlijk ook (beter) met:
    Code:
    ADayInteger := Ord(Vandaag.DayOfWeek);
    All methodologies are based on fear. -- Kent Beck.

  8. #8
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415
    Bedankt Dirk
    Anders

    May your code compile!

  9. #9
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415
    En nu anders om

    Ik heb dus een Datum van het Type DateTime en wil wten in welke week die is?
    Anders

    May your code compile!

  10. #10
    Originally posted by Anders
    Nu bring je mij in verlegenheid - Ik dacht in een ASP.NET applicatie kan je toch niet VCLor .NET gebruiken?
    Voor de duidelijkheid: ik bedoelde niet dat je de VCL moest gaan gebruiken in het project. Dat is wellicht wat overkill voor een paar functies. Maar het is wel handig om even in de code te kijken wat de VCL doet om de functie in .NET uit te voeren.
    Marcel

  11. #11
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    Originally posted by Marcel
    ...Maar het is wel handig om even in de code te kijken wat de VCL doet om de functie in .NET uit te voeren.
    In dit geval niet: het probleem van Anders was niet DayOfWeek te vinden, want die had hij al, maar een manier om de enum naar de integer waarde te krijgen.
    All methodologies are based on fear. -- Kent Beck.

  12. #12
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    Originally posted by Anders
    Ik heb dus een Datum van het Type DateTime en wil wten in welke week die is?
    Ah, dat is een fijne
    Hangt onder meer af van wat de eerste dag van de week is en wat de CalendarWeekRule is van de Culture waarvoor je deze info vraagt. Voor CurrentCulture is dat:
    Code:
    uses System.Globalization;
    
    // ..
    
    var
      Week: Int32;
    begin
      Week := CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(
        DateTime.Today,
        CultureInfo.CurrentCulture.DateTimeFormat.CalendarWeekRule,
        CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek);
    end;
    All methodologies are based on fear. -- Kent Beck.

  13. #13
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415
    Nogmaals bedankt Dirk

    Maar ik blijf maar prutsen (sorry Dees)
    Nu blijkt toch dat ik de eerste dag van een week moet hebben, denk ik tenminste Eerst hiel ik geen rekening met jaren en controleerde ik of de week <= was dan een bepaalde week, maar dat loopt in de soep als er weken zijn van meerdere jaren (2 jaar)

    Wat ik moet dus moet weten is of een datum (DateTime type) voor of na de eerste week van de school vakantie is (maandag van die week)

    Nu heb (voor mijn gevoel) alle artikelen op msdn gelezen, maar kom er niet uit hoe ik dit moet oplossen

    Kan iemand mij in de goede richting sturen?
    Anders

    May your code compile!

  14. #14
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    Je probleem is me niet helemaal duidelijk. Als je de datum hebt van het begin van de vakantie en het eind van de vakantie dan is dat toch gewoon zoiets:
    Code:
    function InVakantie(EenDag, BeginVakantie, EindVakantie: DateTime): Boolean;
    begin
      Result := (EenDag >= BeginVakantie) and (EenDag <= EindVakantie);
    end;
    
    //of als je niet zeker bent van het Time gedeelte:
    
    function InVakantie(EenDag, BeginVakantie, EindVakantie: DateTime): Boolean;
    begin
      Result := (EenDag.Date  >= BeginVakantie.Date) and 
                (EenDag.Date <= EindVakantie.Date);
    end;
    Dus de vraag is: wat heb je om mee te starten?
    All methodologies are based on fear. -- Kent Beck.

  15. #15
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415
    Ben er uit

    Uit de database heb ik de datum (DateTime) van de maandag van verschillende weken. In feite moet ik weten of de huidige datum (DateTime.ToDay) voor of na de eerste week van de schoolvakantie ligt en zo nee welke maandag van een week uit de database over eenkomt met de maandag van de huidige week.
    Dus had ik de Maandag van huidige week nodig, dat doe ik nu zo
    Code:
    function TZoekcriteria.EersteDagVanWeek(ADate: DateTime): DateTime;
    var
     Dag: Integer;
    begin
     Dag:= Ord(ADate.DayOfWeek);
     Result:= ADate.AddDays(- Dag + 1); // +1 omdat DayOfWeek -> 0=zondag
    end;
    Waar ADate in dit geval de huidige datum is.

    Bedankt voor het mee denken / helpen
    Anders

    May your code compile!

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Planprobleem
    By Ron1 in forum Koffiehoek
    Replies: 32
    Last Post: 09-Jan-05, 00:49
  2. Replies: 67
    Last Post: 15-Jun-04, 12:32
  3. Interfaces?
    By PsychoMark in forum Algemeen
    Replies: 32
    Last Post: 28-Aug-02, 23:42

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •