Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. How to get first and last date given a year and a weeknr

How to get first and last date given a year and a weeknr

Scheduled Pinned Locked Moved C#
tutorialquestion
15 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L livez

    Hello! Im trying to figure out how I get the dates for the first and last day of a given year and week. For instance: year: 2009 week:53 = 2009/12/28 - 2010/01/03 year: 2010 week:1 = 2010/01/04 - 2010/01/10 Does anyone know how to achieve this?

    OriginalGriffO Online
    OriginalGriffO Online
    OriginalGriff
    wrote on last edited by
    #5

    DateTime does not appear to handle week of year at all - much to my suprise. Fortunately, I had to implement this for a real-time project many years ago. For the full rules, look for ISO-8601 which is the standard reference for dates and times, but: 1) Week number is 1 - 53. 2) Weeks start on Monday. 3) Week one is always the week with the first Thursday of the new year. I.e., if January the 1st is a Monday, Tuesday, Wednesday or Thursday, it is in week 1. Otherwise it is in the final week of the previous year (which could be week 51, 52, or 53 dependant on when week 1 was in that year). Yes, this means that December 29th, 30th and 31st could be in Week 1 of the new year!

    All those who believe in psycho kinesis, raise my hand.

    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
    "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

    1 Reply Last reply
    0
    • L livez

      Hello and thanks for your reply. I don´t see how it would be that easy though. Could you give a pointer of how you would solve my problem with datetime-class? I´ve been trying to use System.Globalization.Calendar with AddWeeks etc, but have yet to make it work.

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #6

      livez wrote:

      Could you give a pointer of how you would solve my problem with datetime-class?

      Create a DateTime object with the relevant date, add or subtract one day until it's the first day of the week (i.e Sunday or Monday), save that date. Add one day until it's the last day of the week, save that date. Look at the DateTime members to see what is possible.

      L 1 Reply Last reply
      0
      • L livez

        Hello! Im trying to figure out how I get the dates for the first and last day of a given year and week. For instance: year: 2009 week:53 = 2009/12/28 - 2010/01/03 year: 2010 week:1 = 2010/01/04 - 2010/01/10 Does anyone know how to achieve this?

        D Offline
        D Offline
        David Skelly
        wrote on last edited by
        #7

        This might help: http://en.wikipedia.org/wiki/ISO_week_date[^] It tells you how to calculate the week number for any given date, so it shouldn't be too hard to "reverse engineer" it to come up with the date corresponding to a given week number.

        L 1 Reply Last reply
        0
        • D David Skelly

          This might help: http://en.wikipedia.org/wiki/ISO_week_date[^] It tells you how to calculate the week number for any given date, so it shouldn't be too hard to "reverse engineer" it to come up with the date corresponding to a given week number.

          L Offline
          L Offline
          livez
          wrote on last edited by
          #8

          Thanks, Ill check it out!

          L 1 Reply Last reply
          0
          • L livez

            Thanks, Ill check it out!

            L Offline
            L Offline
            Lost User
            wrote on last edited by
            #9

            I already got my code to work.

            D 1 Reply Last reply
            0
            • L Lost User

              I already got my code to work.

              D Offline
              D Offline
              David Skelly
              wrote on last edited by
              #10

              Richard MacCutchan wrote:

              I already got my code to work.

              Teacher's pet! ;P

              L 1 Reply Last reply
              0
              • L Lost User

                livez wrote:

                Could you give a pointer of how you would solve my problem with datetime-class?

                Create a DateTime object with the relevant date, add or subtract one day until it's the first day of the week (i.e Sunday or Monday), save that date. Add one day until it's the last day of the week, save that date. Look at the DateTime members to see what is possible.

                L Offline
                L Offline
                livez
                wrote on last edited by
                #11

                "Create a DateTime object with the relevant date" But its the relevant date I dont have. I have a year and a weeknr. How do I create a relevant datetime-object with that?

                L 1 Reply Last reply
                0
                • L livez

                  "Create a DateTime object with the relevant date" But its the relevant date I dont have. I have a year and a weeknr. How do I create a relevant datetime-object with that?

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #12

                  Create a DateTime(year, 1, 1) Adjust by day until the day is Thursday to get it to week 1 Add 7 x week number Adjust day back and forward to find Monday and Sunday

                  L 2 Replies Last reply
                  0
                  • D David Skelly

                    Richard MacCutchan wrote:

                    I already got my code to work.

                    Teacher's pet! ;P

                    L Offline
                    L Offline
                    Lost User
                    wrote on last edited by
                    #13

                    Yeah and I brought an apple today. ;)

                    1 Reply Last reply
                    0
                    • L Lost User

                      Create a DateTime(year, 1, 1) Adjust by day until the day is Thursday to get it to week 1 Add 7 x week number Adjust day back and forward to find Monday and Sunday

                      L Offline
                      L Offline
                      livez
                      wrote on last edited by
                      #14

                      Ill try that, thanks!

                      1 Reply Last reply
                      0
                      • L Lost User

                        Create a DateTime(year, 1, 1) Adjust by day until the day is Thursday to get it to week 1 Add 7 x week number Adjust day back and forward to find Monday and Sunday

                        L Offline
                        L Offline
                        livez
                        wrote on last edited by
                        #15

                        got it working with your suggestion (with a slight adjustment), thanks!

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups