Skip to content

Instantly share code, notes, and snippets.

@Myoga1012
Last active January 30, 2023 08:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Myoga1012/a7fcf1341d35982f82af to your computer and use it in GitHub Desktop.
Save Myoga1012/a7fcf1341d35982f82af to your computer and use it in GitHub Desktop.
ドリトルでカレンダーを出力するソースコードです。
// 名前 : Myoga Screw-bright (旧名:Myoga S. Tomonaka)
// Twitter : https://twitter.com/Myoga1012
// 現在の日付と曜日を取得します。
現在年 = ( システム ! 年? ). 現在月 = ( システム ! 月? ). 現在日 = ( システム ! 日? ).
現在曜日 = ( システム ! 曜日? ).
// 曜日を文字から数値( 日曜 : 0、月曜 : 1、・・・、土曜 : 6 )に変換します。
「現在曜日 == "日"」 ! なら「現在曜日 = "0"」
そうでなければ「「現在曜日 == "月"」 ! なら「現在曜日 = "1"」
そうでなければ「「現在曜日 == "火"」 ! なら「現在曜日 = "2"」
そうでなければ「「現在曜日 == "水"」 ! なら「現在曜日 = "3"」
そうでなければ「「現在曜日 == "木"」 ! なら「現在曜日 = "4"」
そうでなければ「「現在曜日 == "金"」 ! なら「現在曜日 = "5"」
そうでなければ「現在曜日 = "6"」実行.」実行.」実行.」実行.」実行.」実行.
// 当月1日の曜日を求めます。
当月1日の曜日 = ( 現在曜日 + 7 - ( 現在日 - 1 ) % 7 ) % 7.
// 当月末日を求めます。
「現在月 == 2」 ! なら「
「( 現在年 % 4 ) == 0」 ! なら「当月末日 = 29」
そうでなければ「当月末日 = 28」実行.
」そうでなければ「
「どれか !
( ぜんぶ ! ( 現在月 <= 7 ) ( 現在月 % 2 == 1 ) 本当 )
( ぜんぶ ! ( 現在月 >= 8 ) ( 現在月 % 2 == 0 ) 本当 )
本当」 ! なら「当月末日 = 31」
そうでなければ「当月末日 = 30」実行.
」実行.
XSIZE = 40. YSIZE = 30. // 1日分の表示エリアのサイズです。
SDOFF = 10. // 1~9ではX座標をさらに10px右にずらします。
XOFF = -300. YOFF = 200. // 原点の左上に表示されるように調整します。
SEQ = 当月1日の曜日. DAY = 1.
// カレンダーを出力します。なお、列 : SEQ mod 7、行 : floor( SEQ / 7 )です。
「DAY <= 当月末日」 ! の間「
「DAY < 10」 ! なら「
ラベル ! ( DAY ) 作る
( ( SEQ % 7 ) * XSIZE + SDOFF + XOFF )
( floor( SEQ / 7 ) * ( -1 * YSIZE ) + YOFF ) 位置.
」そうでなければ「
ラベル ! ( DAY ) 作る
( ( SEQ % 7 ) * XSIZE + XOFF )
( floor( SEQ / 7 ) * ( -1 * YSIZE ) + YOFF ) 位置.
」実行.
SEQ = SEQ + 1. DAY = DAY + 1.
」実行.
// Calendar.dtl
// Copyright (c) 2014 Myoga-TN.net All Rights Reserved.
// This software is released under the MIT License.
// http://opensource.org/licenses/mit-license.php
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment