Hej! Hej den fungerar finfint.. Det finns en bugg i windows som gör att det blir fel veckonummer runt årsskiftet ibland, skulle ha något att göra med vilken dag det nya året inträffade. Skulle kunna vara det som spökar... jag har en funktion för det där, som inte blir fel vid årsskiften... ska se Hej så här är ett sätt Hej,konvertera år och vecka till datum
Jag skulle vilja ha hjälp med en funktion som tar emot tre parametrar "År", "Vecka" och "Dag i vecka" (måndag=1).
Funktionen ska sedan returnera rätt datum..
ex:
Om jag skickar in 2002, 42, 1
så ska funktonen returnera:
2002-10-14
Jag har slitit mitt hår för att försöka få allt att fungera men antagligen har jag drabbats av hjärnsläpp eller nått..
Hoppas på att få lite hjälp här istället
mvh
Jimmy Mattsson
LudvikaSv: konvertera år och vecka till datum
Måste göra reklam för Pelles FilArea,där hittar du många
lösningar om du söker rätt.
Tex ditt problem, kolla Programarkivet:038
mvh
SvenSv: konvertera år och vecka till datum
Jag undrar om du har möjlighet att hjälpa mig med en funktion som gör tvärt om.. dvs tar emot ett datum och returnerar år, vecka och dag i vecka
jag gjorde en funktion men det blir fel runt årsskiften
<CODE>
Function DateConvert(datum As String) As String
Dim year, week, day As String
year = Format(datum, "yy")
week = Format(datum, "ww", vbMonday, vbUseSystem)
day = Format(datum, "w", vbMonday)
If Len(week) = 1 Then
week = "0" & week
End If
DateConvert = year & "-" & week & "-" & day
End Function
</CODE>
mvh
Jimmy MattssonSv: konvertera år och vecka till datum
Det fanns en ful väg runt detta på MS sidor, har dock glömt adressen men du kan säkert :) leta upp sidan..
- M Sv: konvertera år och vecka till datum
om jag kan hitta den...
Det programet körs visst just nu - men klistrar in den här om en timmer
eller så - när allt annat är klart.
/EmmaSv: konvertera år och vecka till datum
Label1.Caption = StrConv("Vecka " & Format$("2002-09-11", "ww dddd", _
vbUseSystemDayOfWeek, vbUseSystem), vbProperCase)
eller
Label1.Caption = StrConv(Format$("2002-09-11", "dddd ", _
vbUseSystemDayOfWeek, vbUseSystem) & "vecka " & _
Format$("2002-09-11", "ww", _
vbUseSystemDayOfWeek, vbUseSystem), vbProperCase)
mvh
SvenSv: konvertera år och vecka till datum
Här kommer min kod. Den är testad på de fall som inte vill fungera
annars...
/Emma
<code>
Den här koden har jag i en egen modul, mdlDatum
Option Explicit
Public Function WeekNumber(InDate As Date) As Integer
Dim DayNo As Integer
Dim StartDays As Integer
Dim StopDays As Integer
Dim StartDay As Integer
Dim StopDay As Integer
Dim VNumber As Integer
Dim ThurFlag As Boolean
DayNo = Days(InDate)
StartDay = Weekday(DateSerial(Year(InDate), 1, 1)) - 1
StopDay = Weekday(DateSerial(Year(InDate), 12, 31)) - 1
' Number of days belonging to first calendar week
StartDays = 7 - (StartDay - 1)
' Number of days belonging to last calendar week
StopDays = 7 - (StopDay - 1)
' Test to see if the year will have 53 weeks or not
If StartDay = 4 Or StopDay = 4 Then ThurFlag = True Else ThurFlag = False
VNumber = (DayNo - StartDays - 4) / 7
' If first week has 4 or more days, it will be calendar week 1
' If first week has less than 4 days, it will belong to last year's
' last calendar week
If StartDays >= 4 Then
WeekNumber = Fix(VNumber) + 2
Else
WeekNumber = Fix(VNumber) + 1
End If
' Handle years whose last days will belong to coming year's first
' calendar week
If WeekNumber > 52 And ThurFlag = False Then WeekNumber = 1
' Handle years whose first days will belong to the last year's
' last calendar week
If WeekNumber = 0 Then
WeekNumber = WeekNumber(DateSerial(Year(InDate) - 1, 12, 31))
End If
End Function
Private Function Days(DayNo As Date) As Integer
Days = DayNo - DateSerial(Year(DayNo), 1, 0)
End Function
Public Function getDag(ByVal datum As Date) As String
'Den sträng som jag vill returnera vid de olika veckodagarna
Dim dag As String
Dim nr As Integer
nr = DatePart("w", datum, vbUseSystemDayOfWeek, vbUseSystem)
Select Case nr
Case 1
dag = "Må"
Case 2
dag = "Ti"
Case 3
dag = "On"
Case 4
dag = "To"
Case 5
dag = "Fr"
Case 6
dag = "Lö"
Case 7
dag = "Sö"
End Select
getDag = dag
End Function
</code>