vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Wochen des Jahres 
Autor: sdzhob
Datum: 08.11.08 21:13

Hi Leute!

In Vertrauen an die Kompetenz dieses Forums möchte ich euch gerne mein Problem erklären:

Ich möchte gerne alle Wochen des Jahres ausgeben (und zwar immer mit Beginn und Ende 01.01.08-06.01.08). Und später dann möchte ich abchecken können, ob ein Datum in einem Datenintervall liegt.

Leider bin ich noch ein VB-Neuling und erhoffe mir dass ihr mir helfen könnt !

Ich brauch die Bezeichnungen der Wochen als String, da ich sie dann auch in einer Schleife, in eine Datei schreibe.

Hab es so versucht:


 
Public Function CalendarWeek(ByVal nWeek As Integer, ByVal nYear As Integer) As _
  Date
 
' Wochentag des 4. Januar des Jahres ermitteln
Dim dStart As New Date(nYear, 1, 4)
Dim nDay As Integer = (dStart.DayOfWeek + 6) Mod 7 + 1
 
' Beginn der 1. KW des Jahres
Dim dFirst As Date = dStart.AddDays(1 - nDay)
 
' Gesuchte KW ermitteln
Return dFirst.AddDays((nWeek - 1) * 7)
End Function
----

Public Function DateToWeek(ByVal dDate As Date) As String
' Startdatum der ersten Kalenderwoche des Jahres und Folgejahres berechnen
Dim dThisYear As Date = CalendarWeek(1, dDate.Year)
Dim dNextYear As Date = CalendarWeek(1, dDate.Year + 1)
 
' Prüfen, ob Datum zur ersten Woche des Folgejahres gehört
If dDate >= dNextYear Then
' Rückgabe: KW 1 des Folgejahres
Return dDate.Year + 1 & "01"
Else
' KW = Differenz zum ersten Tag der ersten Woche
Return dDate.Year & Format$(dDate.Subtract(dThisYear).Days \ 7 + 1, "00")
End If
End Function
------

 Dim day As Integer = 1
Dim month As Integer = 1
Dim year As Integer = Today.Year
Dim strKW As String = ""
Dim c As Integer = 0
Dim KW As Integer = 0
Dim KW_old As Integer = 0
Dim first_weekday As Integer = 0
Dim first_weekday_month As Integer = 0
Dim firstrun As Boolean = False
 
Do Until month > 12
Do Until day > Date.DaysInMonth(year, month)
strKW = DateToWeek(CDate(day & "." & month & "." & year))
KW = strKW.Substring(4, 2)
If KW <> KW_old Then
RichTextBox1.Text &= "KW " & KW & " / " & first_weekday & "." & _
  first_weekday_month & ". - " & day - 1 & "." & month & "." & year & vbCrLf
firstrun = True
Else
If firstrun Then
first_weekday = day - 1
first_weekday_month = month
End If
firstrun = False
End If
day = day + 1
KW_old = KW
Loop
day = 1
month = month + 1
Loop
-----

Leider funktioniert der Code nicht - ich weiß nicht wie ich das hinkriegen kann. Wäre für eine funktionierende Anpassung des Codes ewig dankbar 8-) .

Danke und Gruß
sdzhob
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Wochen des Jahres937sdzhob08.11.08 21:13
Re: Wochen des Jahres631cookstdu09.11.08 09:16
Re: Wochen des Jahres466sdzhob09.11.08 13:18
Re: Wochen des Jahres487sdzhob09.11.08 13:55
Re: Wochen des Jahres433mikeb6909.11.08 16:30
Re: Wochen des Jahres447sdzhob09.11.08 19:17

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel