2009-03-29 12 views
0

Ich habe 2 Drop-downs 1 mit der Wochennummer 1 mit Jahren. Ich möchte den Datumsbereich aus diesen Daten extrahieren. SoZeitraum von der Wochenzahl + Jahr

:

Wochennummer 13 Jahre 2009 geben würde:

Montag, 23. März 2009 Dienstag, 24. März 2009 ...

VB.Net bevorzugt, aber C# sollution ist auch ok.

Edit: Ok Ich denke, ich hätte erwähnen sollen, dass dies für europäische Daten ist.

Antwort

1
var date = DateTime.MinValue + 2009.Years() + 13.Weeks(); 

unter Verwendung Fluent DateTime Projektes auf Codeplex in dieser Woche Rest des Tages bekommen.

5
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 wird ersten Tag dieser Woche enthält, 7 Tage hinzufügen und

+0

Früher war unvollständig aktualisiert sollte man hilfreich sein –

+0

Das hat super funktioniert, danke! – mkchandler

3

die Sie folgende Funktionen verwenden:

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 

ich diese bin mit dem Datum des Montags und Freitag jeder Woche Anzahl zu bestimmen.

wo:

  • auf Funktion Week2Date2 den Freitag der Woche Anzahl und
  • auf Funktion Week2Date1 zurück Montag der Woche Anzahl ab dem Zeitpunkt zurückgegebene Wert von Week2Date2 zurückzukehren.
2

Unter Code erhält der Datumsbereich von Woche Nummer und Jahr. Aber es ist in Java geschrieben.
Hoffe es hilft.

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 
Verwandte Themen