Reputation: 1772
I have 2 dropdowns 1 with weeknumbers 1 with years. I want to extract the date range from this data.
So:
Weeknumber 13 year 2009 would give:
monday 23 march 2009 tuesday 24 march 2009 ...
VB.Net preferred but C# sollution is also ok.
Edit: Ok I guess I should have mentioned this is for European dates.
Upvotes: 0
Views: 1393
Reputation: 31
Try to use these following functions:
Public Function Week2Date1(ByVal Week2Date2 As Date) As Date
Week2Date1 = DateAdd(DateInterval.Day, -4, Week2Date2)
End Function
Public Function Week2Date2(ByVal WeekNo As Integer) As Date
Week2Date2 = DateSerial(Now.Year, 1, (WeekNo) * 7)
End Function
I am using these to determine the date of the Mondays and Fridays of every week number.
where:
Upvotes: 3
Reputation: 104
Below code gets the date range from week number and year. But its written in Java.
Hope it helps.
System.out.println("date Range from weekNumber and year but in Java");
System.out.println(); // print a blank line
// get the input from the user
Scanner sc = new Scanner(System.in);
System.out.print("Enter the week : ");
int weekNumber = sc.nextInt();
System.out.print("Enter the Year: ");
int year = sc.nextInt() ;
Calendar cal = Calendar.getInstance();
//cal.setTime(new Date());
cal.set(Calendar.YEAR, year);
cal.set(Calendar.WEEK_OF_YEAR, weekNumber);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println(formatter.format(cal.getTime())); // start date
cal.add(Calendar.DAY_OF_WEEK, 6);
System.out.println(formatter.format(cal.getTime())); // end date
Upvotes: 2
Reputation: 32323
var date = DateTime.MinValue + 2009.Years() + 13.Weeks();
by using Fluent DateTime project on Codeplex.
Upvotes: 1
Reputation: 2748
CultureInfo curCulture = CultureInfo.CurrentCulture;
DateTime targetDate = curCulture.Calendar.AddWeeks(new DateTime([year], 1, 1), [Week]);
DayOfWeek targetWeekDay =
curCulture.Calendar.GetDayOfWeek(targetDate);
DateTime targetBeginningOfWeek = targetDate.AddDays(-1*Convert.ToInt16(targetWeekDay));
targetBeginningOfWeek will contain first day of that week, add 7 days and get rest of day in that week
Upvotes: 5