Goddagens... ett litet problem som ngn kanske kan hjälpa till med? Tackar, så enkelt var det ju... fick för mig att det var en speciell formatfunktion jag hade hittat :o/ Man kan oxå använda DatePart() funktionen. Anser den mer lämplig för just detta. Tackar, det var DatePart jag hade sett innan, så då var jag inte helt ute och snurrade iaf :o) Datepart returnerar fel veckonummer ibland - det kommer iofs inte Har märkt att en måndag på första veckan av ett år blir 53 medans resten av dagarna i den veckan blir 1. Stälde till det i ett program som lagrade veckor som datum för måndagen i veckan. Inte ens Microsoft kan korrigera verkligheten *S* <code> KAn en vecka ha två veckonummer. Svar nej. Antingen har hela veckan 53 eller 1. > KAn en vecka ha två veckonummer. Svar nej. Antingen har hela veckan 53 eller 1. Vilket veckonummer?
Har för mig jag har sett en funktion i VB för att kolla vilket veckonummer det är en viss datum.
Har kollat på FormatDateTime() men det verkar inte vara rätt.
Ngn som vet vad funktionen heter? Hittar den inte :o/
/MeSv: Vilket veckonummer? (löst)
Sv: Vilket veckonummer?
Tänk dock på att ange FirstDayOfWeek och FirstWeekOfYear parametrana til Format() eller DatePart() funktionen. Annars utgår den från amerikanskt format.
För att använda datorns instälningar skriver du:
Week = DatePart("ww",Now,vbUseSystemDayOfWeek,vbUseSystem )
För svenskt format skriver du:
Week = DatePart("ww",Now,vbMonday ,vbFirstFourDays ) Sv: Vilket veckonummer?
Sv: Vilket veckonummer?
uppstå förrän 2004 v1 första gången framöver.
/EmmaSv: Vilket veckonummer?
Vet du om microsoft skall korrigera det?Sv: Vilket veckonummer?
Det ÄR ju ett faktum att kalendern ser ut på det viset ibland....Sv: Vilket veckonummer?
Sorry... kunde ju lagt ut koden som åtgärdar det. Hittade den på nätet -
det är tydligen en känd bugg. Av det jag fick fram i mina egna tester
blir första måndagen i v1 v53 skottår (men inte alla...).
Förtydling: Datepart returnerar v53 istället för v1 för måndagen viss skottår. Det gör inte nedanstående kod... (nöjda nu killar?) ;)
Tipset finns här:
http://www.pellesoft.nu/login/tips/t_view4.asp?tid=1081
/Emma
Här är koden:
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
</code>Sv: Vilket veckonummer?
Sv: Vilket veckonummer?
Instämmer. Tycker det låter skumt ... Men om det är en bugg á la M$ så har vi ju förklaringen där?
Fast å andra sidan skrevs det ju också att det finns flera måndagar i en vecka också ...
> blir första måndagen i v1 v53 skottår (men inte alla...).
Förlåt, kunde bara inte låta bli. ;-)
Må väl i solskenet.
/EE