提供: Japanese Scratch-Wiki

2017年7月26日 (水) 13:11時点におけるMochimochiking (トーク | 投稿記録)による版 (色の調整。)

2000年からの日数
(2000年からの日数)
カテゴリ 調べる
タイプ
追加 Scratch 2.0

2000年からの日数は、調べるブロックで、値ブロックでもある。このブロックは、2000年1月1日午前0時0分0秒からの経過日数を返す。(小数点以下は、経過ミリ秒数など)これはScratch開始からの日数から置き換えられて実装された。

Scratchには、2つの日付時刻を扱うブロックがある。これはそのうちの1つで、もう1つは現在の()で、現在の日付時刻を返す。これらの2つのブロックは協力して時間関係のスクリプトを作ることができる。

このブロックを使う代表的な例を表す:

  • カウントダウン
([2025年まであと] と (((9132) - (2000年からの日数)) と [日!]))と言う
  • 特定の日の前または後で、機能を使用不可にする
もし <(2000年からの日数) < [5479]> なら 
  [所持金 v] を (1000) ずつ変える
else
  [この機能は2015年以降は使えません。] と言う
end
  • 実際のイベントに対応する作品
定義 今から(value)日後に(event)をマークする
((2000年からの日数) + (value)) を [eventDates v] に追加する
(event) を [eventNames v] に追加する

定義 (event)をカレンダーから探す
[i v] を (0) にする
<<(i) > ([eventNames v] の長さ :: list)> または <((i)番目  [eventNames v]   :: list) = (event)>> まで繰り返す 
  [i v] を (1) ずつ変える
end
もし <(i) > ([eventNames v] の長さ :: list)> なら 
  [output v] を (([あなたが探した] と (event)) と [は見つかりませんでした。]) にする
でなければ
  もし <(2000年からの日数) < ((i) 番目  [eventDates v]  :: list)> なら 
    [output v] を (((([あなたの] と (event)) と [は ]) と (((i) 番目  [eventDates v] :: list) - (2000年からの日数))) と [日後です]) にする
  でなければ
    もし <(2000年からの日数) = ((i) 番目  [eventDates v]  :: list)> なら 
      [output v] を ((event) と [は今日です!]) にする
    でなければ
      [output v] を (([このイベントは] と ((2000年からの日数) - ((i) 番目  [eventDates v]  :: list))) と [日前です。]) にする
    end
  end
end

別のブロックによる表現

このブロックの動作は、次のスクリプトで再現できる。

[days v] を ((((367) * (現在の [年 v])) - ([切り下げ v]  (((7) * ((現在の [年 v]) + ([切り下げ v] (((現在の [月 v]) + (9)) / (12))::operators))) / (4))::operators)) + ((([切り下げ v] (((275) * (現在の [月 v])) / (9))::operators) + (現在の [日 v])) - (730531))) にする
[days v] を ((<(days) < [-36435]> + <(days) < [-72990]>) - <(days) > [36585]>) ずつ変える

1800年-2199年までは正しいです。

関連項目