Init()
While "True"
CalcMonth()
DrawCalendar()
WaitButton()
EndWhile
Sub CalcMonth
If Math.Remainder(year, 4) = 0 And Math.Remainder(year, 100) > 0 Or Math.Remainder(year, 400) = 0 Then
dom[2] = 29
Else
dom[2] = 28
Endif
nol = Math.Floor((year - 1) / 4) - Math.Floor((year - 1) / 100) + Math.Floor((year - 1) / 400) ' number of leap year
woy = Math.Remainder((year + nol), 7) ' week of year
doy = 0
For _m = 1 To mm - 1
doy = doy + dom[_m]
EndFor
w = Math.Remainder((doy + woy), 7)
EndSub
Sub DrawCalendar
url = Flickr.GetRandomPicture(month[mm])
img = ImageList.LoadImage(url)
iw = ImageList.GetWidthOfImage(img)
ih = ImageList.GetHeightOfImage(img)
If (iw / ih) < (gw / gh) Then
width = gw
height = gw / iw * ih
x = 0
y = (gh - height) / 2
Else
width = gh / ih * iw
height = gh
x = (gw - width) / 2
y = 0
EndIf
GraphicsWindow.Title = month[mm] + " " + year
GraphicsWindow.DrawResizedImage(img, x, y, width, height)
x = 24
y = 14
dx = (gw - 20) / 7
GraphicsWindow.FontSize = 14
For _w = 0 To 6
GraphicsWindow.BrushColor = sc
GraphicsWindow.DrawText(x + 2, y + 2, week[_w])
GraphicsWindow.BrushColor = fc
GraphicsWindow.DrawText(x, y, week[_w])
x = x + dx
EndFor
y = y + 32
fs = 40
GraphicsWindow.FontSize = fs
fw = fs * 0.5
For d = 1 To dom[mm]
x = 24 + w * dx
GraphicsWindow.BrushColor = sc
GraphicsWindow.DrawText(x + 2 + fw, y + 2, d)
GraphicsWindow.BrushColor = fc
GraphicsWindow.DrawText(x + fw, y, d)
If d = 9 Then
fw = 0
EndIf
w = w + 1
If 6 < w Then
w = 0
y = y + fs * 1.6
EndIf
EndFor
EndSub
Sub WaitButton
wait = "True"
While wait
Program.Delay(200)
EndWhile
If Controls.GetButtonCaption(Controls.LastClickedButton) = "<" Then
mm = mm - 1
If mm < 1 Then
mm = 12
year = year - 1
EndIf
Else
mm = mm + 1
If 12 < mm Then
mm = 1
year = year + 1
EndIf
EndIf
EndSub