Edited at

Googleの祝日カレンダーデータをBASIC!で取得。( BASIC プログラミング )

More than 3 years have passed since last update.

BASIC!は、Androidで動くBASIC インタープリタです。詳しくは以下をどうぞ。

Googleの祝日カレンダーデータを取得する記事があちらこちらに出ていたので BASIC!でもできるか試してみました。


1.カレンダーデータとは

以下のサイトの記事がわかりやすいと思います。

要は「 https://calendar.google.com/calendar/ical/ja.japanese%23holiday%40group.v.calendar.google.com/public/basic.ics 」のデータを取得して編集すればいいことになります。


2.コード

さっそくコードです。ポイントは以下


  • graburl命令でicsファイルは取得

  • DTSTARTとSUMMARYを含む行のみ抽出

  • 日付の昇順で並べ替え

REM Start of BASIC! Program

graburl ics$,"https://calendar.google.com/calendar/ical/ja.japanese%23holiday%40group.v.calendar.google.com/public/basic.ics"

print ics$

split iya$[],ics$,"\n"
array.length liya,iya$[]

cls

outwk$=""

for vv=1 to liya
if IS_IN("DTSTART",iya$[vv])>0 then
wk1$=replace$(iya$[vv],"DTSTART;VALUE=DATE:","")
endif
if IS_IN("SUMMARY",iya$[vv])>0 then
wk2$=replace$(iya$[vv],"SUMMARY:","")
outwk$=outwk$+wk1$+wk2$+"@x@"
endif
next vv

array.delete iya$[]

split iyb$[],outwk$,"@x@"
array.length liyb,iyb$[]

array.sort iyb$[]

for vv=1 to liyb
print iyb$[vv]
next vv

array.delete iyb$[]

end


3.実行結果

実行した結果は以下です。

BASIC!でも簡単に取得できます。

20150101

元日
20150112
成人の日
20150211
建国記念の日
20150321
春分の日
20150429
昭和の日
20150503
憲法記念日
20150504
みどりの日
20150505
こどもの日
20150506
憲法記念日 振替休日
20150720
海の日
20150921
敬老の日
20150922
国民の休日
20150923
秋分の日
20151012
体育の日
20151103
文化の日
20151123
勤労感謝の日
20151223
天皇誕生日
20160101
元日
20160111
成人の日
20160211
建国記念の日
20160320
春分の日
20160321
春分の日 振替休日
20160429
昭和の日
20160503
憲法記念日
20160504
みどりの日
20160505
こどもの日
20160718
海の日
20160811
山の日
20160919
敬老の日
20160922
秋分の日
20161010
体育の日
20161103
文化の日
20161123
勤労感謝の日
20161223
天皇誕生日
20170101
元日
20170102
元日 振替休日
20170109
成人の日
20170211
建国記念の日
20170320
春分の日
20170429
昭和の日
20170503
憲法記念日
20170504
みどりの日
20170505
こどもの日
20170717
海の日
20170811
山の日
20170918
敬老の日
20170923
秋分の日
20171009
体育の日
20171103
文化の日
20171123
勤労感謝の日
20171223
天皇誕生日

以上です。