Home > Blockchain >  VB6 Alternate 7 images every calendar week continuously
VB6 Alternate 7 images every calendar week continuously

Time:07-13

I am (still) programming in VB6, but I think this problem is not program language related.

I need to show one Picture out of 7 Pictures (named 1.jpg to 7.jpg) every calendar week, beginning with Calendar week 3, which shows picture nr.1

Example: (year and calendar week together as 2022/03)

202203=1.jpg

202204=2.jpg

202205=3.jpg

202206=4.jpg

202207=5.jpg

202208=6.jpg

202209=7.jpg

202210=1.jpg

202211=2.jpg

etc.

How can I do this?? Also, Years can have 52 or 53 weeks, but this has to continue like above...

Appreciate any help, thank you in advance.

CodePudding user response:

Here is some code that gives the results you desire. It should be fairly self-explanatory:

Option Explicit

Private Sub Test()
   Dim dt As Date
   Dim i As Integer
   
   dt = DateSerial(2022, 1, 17)  'start at 3rd calendar week
   
   For i = 1 To 100
      Debug.Print Format(dt, "mm/dd/yyyy") & vbTab & Year(dt) & _
                  Format(ISOWeekNumber(dt), "00") & vbTab & GetPicture(dt)
      dt = DateAdd("d", 1, dt)
   Next
End Sub

Private Function GetPicture(ByVal dt As Date) As String
   Dim dp As Integer

   dp = ISOWeekNumber(dt) Mod 7 - 2
   If dp <= 0 Then dp = dp   7
   GetPicture = dp & ".jpg"
End Function

Private Function ISOWeekNumber(ByVal dt As Date) As Integer
   ISOWeekNumber = DatePart("ww", dt, vbMonday, vbFirstFourDays)
End Function

This produces the following results:

enter image description here

enter image description here

  • Related