No.4923への回答

公式掲示板No.4923より

祝日はGoogle Calendarから
1g505m85p0il2hbsqvkbgcudv8@group.calendar.google.com のを使わせてもらってます

h = GetHolidayList(2013)

if isWeekendOrHoliday(h) then
    //昨日が祝日なら平日まで遡る
    lastWeekday = GetLastWeekday(h)
    msgbox(lastWeekday)
    call B.UWS
else
    //昨日は平日
    call A.UWS
endif

// 最後の平日まで遡ってその日付を YYYY/MM/DD 形式で返す
function GetLastWeekday(HolidayList, date = "")
    n = -1
    repeat
        n = n - 1
    until ! isWeekendOrHoliday(HolidayList, n, date)
    gettime(n, date)
    result = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2
fend

// 土日祝日ならtrueを返す
function isWeekendOrHoliday(HolidayList, n = -1, date = "")
    gettime(n, date)
    result = G_TIME_WW = 0 or G_TIME_WW = 6
    if result then exit
    target = G_TIME_YY4 + "-" + G_TIME_MM2 + "-" + G_TIME_DD2
    for i = 0 to length(HolidayList) - 1
        result = HolidayList[i] = target
        if result then exit
    next
fend

// 祝日一覧を格納した配列を返す
function GetHolidayList(year = 0)
    if ! year then
        gettime()
        year = G_TIME_YY4
    endif
    api = "http://www.google.com/calendar/feeds/1g505m85p0il2hbsqvkbgcudv8@group.calendar.google.com/public/full"
    startmin = year + "-01-01"
    startmax = year + "-12-31"
    query = "alt=json&start-min=" + startmin + "&start-max=" + startmax
    url = api + "?" + query

    o = CreateOleObj("MSXML2.XMLHTTP.6.0")
    o.Open("GET", url, false)
    o.Send()
    if o.status = 200 then
        json = o.ResponseText
    else
        print o.status
        print o.statusText
        exit
    endif

    js = CreateOleObj("ScriptControl")
    js.Language = "JScript"
    js.ExecuteStatement("Array.prototype.Get = function(i) { return this[i]; }")

    j = js.Eval("(" + json + ");")

    entry = j.feed.entry
    result = safearray(0, entry.length - 1)
    for i = 0 to entry.length - 1
        result[i] = entry.Get(i).gd$when.Get(0).startTime
    next
fend
広告

No.4923への回答」への1件のフィードバック

  1. ピンバック: じゅんじゅんのきまぐれ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中