' constants, in 1/18th of minute HOUR1 = 1080 DAY1 = (24*HOUR1) WEEK = (7*DAY1) function M1(byval h, byval p) M1 = (((h)*HOUR1)+p) end function MONTH1 = 39673 ' no. of days in y years */ function dysiz(y) l = y*7+1 ' no. of leap months m = y*12+l\19 ' /* total no. of months */ l = l Mod 19 nm = (m * MONTH1) + M1(1+6,779) ' molad new year 3744 (16BC) + 6 hours */ s = m*28+nm\DAY1-2 nm = nm mod WEEK dw = nm\DAY1 nm = nm Mod DAY1 ' special cases of Molad Zaken if (l < 12 and dw=3 and nm>=M1(9+6,204)) or (l < 7 and dw=2 and nm>=M1(15+6,589)) then s= s+1 dw = dw + 1 end if ' ADU if dw = 1 or dw = 4 or dw = 6 then s = s + 1 dysiz = s end function Function DaysInYear( byval y ) y = y - 3744 DaysInYear = dysiz(y+1) - dysiz(y) end function dim hmonth(14) hmonth(0) = "תשרי" hmonth(1) = "חשון" hmonth(2) = "כסלו" hmonth(3) = "טבת" hmonth(4) = "שבט" hmonth(5) = "אדר" hmonth(6) = "ניסן" hmonth(7) = "אייר" hmonth(8) = "סיון" hmonth(9) = "תמוז" hmonth(10) = "אב" hmonth(11) = "אלול" hmonth(12) = "אדר א'" hmonth(13) = "אדר ב'" function Gimatria(byval n) dim p if n mod 1000 = 0 then Gimatria = Gimatria ( n \ 1000 ) & "אלפים" exit function elseif n > 1000 then Gimatria = Gimatria(n\1000) & Gimatria ( n mod 1000 ) exit function end if p = "" while n >= 400 p = p & "ת" n = n - 400 wend if n >= 100 then ' p = p & chr(246 + n\100) p = p & mid( "קרשת", n\100, 1 ) n = n mod 100 end if if n >= 10 then if n = 15 or n = 16 then n = n - 9 if n\10 > 0 then p = p & mid( "יכלמנסעפצ", n\10, 1 ) else p = p & "ט" end if n = n mod 10 end if ' if n > 0 then p = p & chr( 223 + n ) if n > 0 then p = p & mid( "אבגדהוזחט", n, 1 ) if len(p) <= 1 then p = p & "'" else p = left( p, len(p)-1) & """" & right(p,1) end if Gimatria = p end function function hdate( byval d, byval m, byval y) dim s m = m-2 if ( m <= 0 ) then m = m + 12 y = y - 1 end if d = d + ((365 * y) + (y\4) + (367*m\12) + 5968) d = d - ((y\100) - (y\400) - 2) dw = (d+1) mod 7 y = y + 16 s = dysiz(y) m = dysiz(y+1) while d >= m s = m y = y+1 m = dysiz(y+1) wend d = d - s s = m-s y = y+3744 if d >= (s-236) then d = d - (s-236) m = d * 2 \ 59 d = d - ((m*59+1)\2) m = m+4 if s > 365 and m <= 5 then m = m + 8 else s = 114 + ( s mod 10) m = d * 4 \ s d = d - ((m*s+3)\4) end if ' hdate = d & "-" & m & "-" & y hdate = Gimatria(d+1) & " " & hmonth(m) & " " & Gimatria(y) end function Function HebrewDate(d) HebrewDate = hdate( day(d), month(d), year( d ) ) end function function ShortHebrewDate(d) s1 = HebrewDate(d) s2 = Split(s1) If Ubound(s2) = 3 then ShortHebrewDate = s2(0) & " " & s2(1) & " " & s2(2) Else ShortHebrewDate = s2(0) & " " & s2(1) End if End function themonth=month(date) theyear = year(date) cookies = Split ( document.cookie, ";" ) for each cookie in cookies tmp = Split ( cookie, "=" ) if Trim(tmp(0)) = "month" then themonth=tmp(1) elseif Trim(tmp(0)) = "year" then theyear = tmp(1) end if next if theyear < 100 then MsgBox ( "לא ניתן לצפות בשנים מתחת למאה לספירה" ) document.cookie="theyear=100" theyear = 100 end if themonth=cint(themonth) theyear =cint(theyear) firstday=DateSerial(theyear, themonth, 1) Set holydays = CreateObject("Scripting.Dictionary") holydays.Add "א' תשרי", "ראש השנה" holydays.Add "ב' תשרי", "ראש השנה" holydays.Add "ג' תשרי", "צום גדליה" holydays.Add "ד' תשרי", "צום גדליה (נדחה)" holydays.Add "י' תשרי", "יום כיפור" holydays.Add "ט""ו תשרי", "סוכות" holydays.Add "ט""ז תשרי", "א' דחוה""מ" holydays.Add "י""ז תשרי", "ב' דחוה""מ" holydays.Add "י""ח תשרי", "ג' דחוה""מ" holydays.Add "י""ט תשרי", "ד' דחוה""מ" holydays.Add "כ' תשרי", "ה' דחוה""מ" holydays.Add "כ""א תשרי", "הושענא רבא" holydays.Add "כ""ב תשרי", "שמחת תורה" holydays.Add "כ""ה כסלו","חנוכה" holydays.Add "כ""ו כסלו","חנוכה" holydays.Add "כ""ז כסלו","חנוכה" holydays.Add "כ""ח כסלו","חנוכה" holydays.Add "כ""ט כסלו","חנוכה" holydays.Add "ל' כסלו","חנוכה" holydays.Add "א' טבת","חנוכה" holydays.Add "ב' טבת","חנוכה" holydays.Add "ג' טבת","חנוכה" holydays.Add "י' טבת", "תענית" holydays.Add "י""א טבת", "תענית (נדחה)" holydays.Add "ט""ו שבט","ראש השנה לאילנות" holydays.Add "י""ג אדר","תענית אסתר" holydays.Add "י""ג אדר ב'","תענית אסתר" holydays.Add "י""ד אדר","פורים" holydays.Add "י""ד אדר א'","פורים קטן" holydays.Add "י""ד אדר ב'","פורים" holydays.Add "ט""ו אדר","שושן פורים" holydays.Add "ט""ו אדר א'","שושן פורים קטן" holydays.Add "ט""ו אדר ב'","שושן פורים" holydays.Add "ט""ו ניסן", "פסח" holydays.Add "ט""ז ניסן", "א' דחוה""מ" holydays.Add "י""ז ניסן", "ב' דחוה""מ" holydays.Add "י""ח ניסן", "ג' דחוה""מ" holydays.Add "י""ט ניסן", "ד' דחוה""מ" holydays.Add "כ' ניסן", "ה' דחוה""מ" holydays.Add "כ""א ניסן", "שביעי של פסח" holydays.Add "ד' אייר", "יום הזכרון" holydays.Add "ה' אייר", "יום העצמאות" holydays.Add "כ""ח אייר", "יום ירושלים" holydays.Add "ו' סיון", "שבועות" holydays.Add "י""ז תמוז", "תענית" holydays.Add "י""ח תמוז", "תענית (נדחה)" holydays.Add "ט' אב", "תענית" holydays.Add "י' אב", "תענית (נדחה)" Function GetHolyday(d) shd = ShortHebrewDate(d) hd = holydays.item(shd) dow = WeekDay(d) if shd = "ג' טבת" then if ("ל' כסלו" = ShortHebrewDate(DateAdd("d",-3,d))) then hd = "" elseif dow=4 and (shd = "ג' אייר" or shd="ב' אייר") then hd=holydays("ד' אייר") & "(מוקדם)" elseif dow=5 and (shd = "ד' אייר" or shd="ג' אייר") then hd=holydays("ה' אייר") & "(מוקדם)" elseif dow > 5 and (shd="ד' אייר" or shd="ה' אייר") then hd = "" end if if dow = 7 and (instr(hd, "תענית") or instr(hd, "צום")) then hd = "" if dow <> 1 and instr(hd, "נדחה") then hd = "" GetHolyday = hd End Function