Casio Basic入門
誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します
最終更新: 2015/01/19
追記: 2018/11/3
4. CasioBasicを使ってみる(続き)
前回:
Casio Basic入門22 - Chapter 4[2018/11/03 追記]▶ ソースコードの誤記を見直しました
▶ CcLinker を使ってfx-5800Pに転送して使えるプログラムファイル(CCLファイル)をダウンロードできます。
Chapter 5◆ Chapter 5 の目標: サブルーチンを使いこなすスマホや携帯電話には、世界の主要都市の時間を教えてくれるアプリがあります。私がスマホで使っている「世界時計アプリ」を紹介します。
ベルリン、ロサンゼルス、日本の現在の時間が一目瞭然です。
では、ロサンゼルスの朝9時に合わせて電話したいけど、日本時間で何時になるのか?
世界時計は、その答えを教えてはくれません。
さらに、サンフランシスコ、オックスフォード(イギリス)、日本の三カ所の人が、Skypeで会議をしたいけど、全員に負担のない時間帯にするには、何時に電話会議を設定したらいいのか?
答えを知るには、苦労するのではありませんか?
これらの問題を解決するのが、今回紹介するプログラムです。時差についてまず時差について、簡単に整理してみます。
アメリカの大陸部では、西の端と東の端では時差が3時間あり、これらの地域の間には4つのタイムゾーンがあります。これに加えてアラスカ、ハワイなどのタイムゾーンがあります。ニューヨークの朝10時はロサンゼルスでは朝7時になります。
カナダは6つのタイムゾーンがありますが、そのうち4つは、アメリカの大陸部と同じです。そこで、アメリカとカナダの大陸部をひっくるめて、北米と言うことにします。
ヨーロッパはもっと複雑で、5つ以上のタイムゾーンがあります。
さらに、北米やヨーロッパには夏時間があり、夏と冬では1時間時間が変わります。夏時間が始まる時と終わる時は、北米とヨーロッパでは異なる日時が設定され、それらは毎年異なります。従って、時差の計算は結構面倒で、うっかりすると間違えてしまいます。
世界の時間換算プログラム:TIME ZONE私は日常的に海外とのやりとりをしているので、各国の時間を調整するのがいつも面倒でした。慣れていて頭の良い人なら、パッパッパと暗算できるのですが、見ていると計算を間違えることがよくあります。
そんなことから、日本、ヨーロッパ、北米のどれかの時間を入力したら、他の時間が連動して表示される「世界の時間換算プログラム」が欲しくなり、Casio fx-5800P の Casio Basic で作ったプログラムが、
TIME ZONE です。
ほぼ毎日愛用しています。
▶ プログラムライブラリ - TimeZone [fx-5800P]▶ プログラムライブラリ - TimeZone [fx-9860Gシリーズ、fx-CGシリーズ]以下のような画面です。
操作も表示も1画面内に収まっていて、ダラダラとスクロールすることもありません。これも換算プログラムの一種で、これまでに作った入力ボックス
INPI を利用しますので、必要になります。
⇒
入力ボックス fx-5800P 専用メニュー番号は、0 から 4 の5つ。これらの数字キーを普通に押してそれぞれの機能を呼び出します。さらに、これらのキーを長押しすることで、別の機能を呼び出せるように作っています。
換算プログラムは、類似の機能を積み重ねて作る傾向の高いプログラムなので、サブルーチンをうまく使うことがポイントになります。
Chapter 5 では、この「世界の時間換算プログラム:
TIME ZONE」をつくりながら、サブルーチンの使いこなしを紹介します。
先ずは、入力して使ってみるのも良いと思います。
TIME ZONE 操作一覧
0:JST - 日本時間 の入力と表示
[0] キー: 日本時間入力
1:CET - ヨーロッパ時間の入力と表示
[1] キー: ヨーロッパ時間入力
[1] キー長押し: ヨーロッパ内のタイムゾーン設定
[3] キー: ヨーロッパの夏時間ON/OFF
[3] キー長押し: ヨーロッパ夏時間の期間を表示
2:EDT - 北米時間の入力と表示
[2] キー: 北米時間入力
[2] キー長押し: 北米内のタイムゾーン設定
[4] キー: 北米の夏時間ON/OFF
[4] キー長押し: 北米夏時間の時間を表示
Chapter5-0プログラムの仕様1. 基本機能
日本、ヨーロッパ、北米の3地域の時間を、同時に表示する。
どれかの時間を変更すると、他の2つの時間も連動して変わる。
2. タイムゾーンの設定
ヨーロッパと北米については、それぞれ4つのタイムゾーンから選択できる。
3. 夏時間の設定
ヨーロッパと北米については、それぞれ夏時間かそうでないかを設定できる。
4. 夏時間の開始 / 終了日時
ヨーロッパと北米については、夏時間の開始と終了の日時を表示する。
5. 時間入力の方法
e-Gadget オリジナルの入力ボックス
INPI を使う。
Chapter 5-1
TIME ZONE プログラムの完成形
先ずは、最終的に完成したプログラム TIME ZONE の使い方から説明します。
TIME ZONE の起動
[FILE] キーを押して、プログラムリストを表示、TIME ZONE を選びます。
プログラムが起動すると、以下のような表示になります。
ここで、メニュー番号 0 ~ 2 は、
0: 日本時間
1: ヨーロッパ時間
2: 北米時間
に対応しています。
0:JST
JST は、日本標準時(Japan Standard Time)の略称です。海外では JST と呼ばれます。
1:CET
CET は、中央ヨーロッパ時間(Central Europe Time)の略称で、現地で広く使われている名称です。
2:PST
PST は、北米の太平洋標準時間(Pacific Standard Time)の略称、現地で広く使われている名称です。
メニュー番号 3 と 4 は、それぞれヨーロッパの夏時間設定、北米の夏時間設定を行います。
アルファベットと数字のみの表示で、一見よくわからないかも知れません。fx-5800P はアルファベットと数字の表示しかできませんので、しかたありません。大きさが限られた画面の中で、うまく使うために、メニュー項目には、ヨーロッパや北米でよく使われているタイムゾーンの略称を使っています。タイムゾーンは、同じ時差の地域をまとめた地域を意味します。
調べたい都市や国が、どのタイムゾーンに入るかを調べておいて、それを使うようにします。タイムゾーンについては以下で説明します。
時間の入力
[0] キーを押すと、日本標準時の入力ボックスが現れ、4ケタの数字を入力できます。
ここで、4桁の数字 1420 を入力し、
[EXE]キーを押して入力を確定すると、ヨーロッパと北米の時間も同時に表示されます。
日本時間 14:20 は、中央ヨーロッパ時間で 6:20 、北米の太平洋時間では 21:20 だと分かります。
夏時間の設定
ここで、[3] キーを押すと、ヨーロッパ時間が夏時間になります。
1:CET 0620
が
1:CEST 0720
に、その表示が変化します。
CET は中央ヨーロッパ標準時間で6:20だったのが、夏時間に変えると、中央ヨーロッパ夏時間の略称の CEST に変わって、時間が 7:20 に変わりました。このように、メニュー3 とメニュー4 は、それぞれヨーロッパ時間と北米時間の夏時間の設定を行います。
[3] キーと[4]キーをもう一度押すと、夏時間から標準時間へ戻ります。
ヨーロッパと北米では、夏時間の開始と終了の日時が異なるので、メニュー3 と 4 でそれぞれ別に設定します。
ところで、
ST は Standard Time の略で標準時間のことです。
DL は Daylight Saving の略で夏時間のことです。
夏時間を、よくサマータイムとも言いますが、この言葉を略すると ST となり、標準時間と区別がつきません。
ヨーロッパではサマータイムと言うことがありますが、アメリカでは デイライト・セービング と言います。そこで、夏時間をデイライトセービングの略を使って、DL として、標準時間の ST と区別することにしました。
上の写真を見ると、3:ST が 3:DL に変わってるのが分かり、現在は夏時間を示していることが分かります。
[3] と [4] は、押すたびに ST と DL が切り替わる「トグル動作」をします。
[3] をもう一度押して、標準時間に戻しました。
タイムゾーンの設定と変更
ヨーロッパのタイムゾーンのうち、TIME ZONE では、以下の4つを選んで変更できます。
- WET: 西ヨーロッパ時間、West Europe Time: イギリスやポルトガルなど
- CET: 中央ヨーロッパ時間、Central Europ Time: ドイツ、フランス、イタリアなど
- EET: 東ヨーロッパ時間、East Europe Time: フィンランド、トルコ、ウクライナ、ギリシャなど
- FET: 極東ヨーロッパ時間、Fareast Europe Time: モスクワなど
ヨーロッパのタイムゾーンは、以下のようになっています。
Time-J.net 世界時計 - 世界の時間と時差 - ヨーロッパのタイムゾーンについて から引用
イギリスのタイムゾーンを GMT と言うことが多いのですが、同じタイムゾーンにはポルトガルなども含まれますので、今回はGMTではなくて、WET (西ヨーロッパ時間、West Europe Time) という略称を使うことにしました。
モスクワ時間 (MSK UTC+3)という略称もよく使われますが、TIME ZONEでは極東ヨーロッパ時間 (FET) という略称を採用しました。モスクワ以外にもこのタイムゾーンに属する地域があるので、このようにしました。
なお、都市名で時差を設定する仕様にすると、fx-5800P の Casio Basic では、多くの主要都市名をプログラム中に書き込む必要があり、このように予め用意した都市名以外の時間を知りたい場合は、ネットなどでタイムゾーンを調べる必要があります。どうせ、タイムゾーンを調べる必要があるのならば、いきなりタイムゾーンの名称で設定しても労力は同じです。
従って、TIME ZONE プログラムでは、都市名ではなくてタイムゾーンを選択する仕様にして、汎用性を優先させました。
ヨーロッパのタイムゾーン設定を変更したい時は、[1] キーを長押し。すると以下のような「ヨーロッパのタイムゾーン設定画面」に切り替わります。
現在設定されているタイムゾーンは、⇒ マークが示しています。ここで、矢印キーの左 [◀] か 右 [▶] を押して ⇒ マークを移動させます。この画面では、CET (中央ヨーロッパ標準時間) に設定されていることが分かります。
なお、夏時間に設定されているときは、ヨーロッパの各タイムゾーンの略称は、以下のような少し異なる略章で表示されます。
- WET (西ヨーロッパ標準時間) ←→ WEST (西ヨーロッパ夏時間)
- CET (中央ヨーロッパ標準時間) ←→ CEST (中央ヨーロッパ夏時間)
- EET (東ヨーロッパ標準時間) ←→ EEST (東ヨーロッパ夏時間)
- FET (極東ヨーロッパ標準時間) ←→ FEST (極東ヨーロッパ夏時間)
ヨーロッパでは夏時間をサマータイムと言って、各略称に S が加わります。
さて、タイムゾーン設定画面で、左矢印 [◀] を一回押すと、⇒マークが WET へ移動します。
ここで、右下の ▶E は、[EXE] キーを押すと、設定が確定することを示しています。
では、[EXE] キーを押して、タイムゾーンを WET で確定すると、時間表示の画面に戻ります。
CET (中央ヨーロッパ標準時間)では 6:20 だったものが、WET (西ヨーロッパ標準時間)では 5:20 に変化しました。CET のドイツでの 6:20 は、WET のイギリスでは 5:20 だと言うことも分かります。
この時 JST (日本)では 14:20であることは変化していません。
また、2:PDT 4:DL と表示されており、北米の太平洋夏時間では 22:20 だと示しています。
夏時間でのヨーロッパのタイムゾーン設定画面は以下のようになります。
このように、タイムゾーンの設定を変える際に、夏時間であることが分かるので、勘違いを防げます。
ここで、例題です。
イギリスの朝9:30に電話で話をしたいと思えば、日本時間で何時に電話をかければ良いのか?
先ず、[1] キーを押して、入力モードに入ります。
4桁の「入力ボックス」が表示されたので、ここで 930 と3桁だけ入力します。
これで、[EXE] キーを押して確定すると、
1:WET の右には、0930 と表示されました。4桁すべてを入力せず、3桁入力も受け付けるようにしています。
日本時間 0:JST のところは、1830 と変わりました。日本の夕方の6:30に電話すれば、イギリスの朝 9:30 に話が出来ることが簡単に分かります。
入力の省略機能ですが、次のようなこともできます。
[1] キーを押して、ヨーロッパ時間を入力モードにし、2桁の 10 とだけ入力します。
そして [EXE] キーで確定すると、以下の画面のように 1:WET 1000 と表示されます。
入力時に省略したものは 0 と判断しています。
では、9:00 を入力するのに、1桁の 9 とだけ入力しても、0900 と判断される筈です。
このように、4桁の入力ボックスに、1桁の 9 を入力して、
[EXE] キーで確定すると、
1:WET のところは、0900 となります。
このような入力の省略機能は、数行のプログラムコードで、とても簡単に実現できます。
次に、北米のタイムゾーンについて説明します。
北米には、アメリカとカナダでは、それぞれ異なるタイムゾーンがありますが、大陸部は共通した4つのタイムゾーンがあり、プログラム TIME ZONE では、以下の共通した4つのタイムゾーンを設定できるようにしています。
- PST: 太平洋標準時間(Pacific Time): シアトル、サンフランシスコ、ロサンゼルスなど
- MST: 山岳部標準時間(Mountain Time): ソルトレイクシティー、デンバーなど
- CST: 中部標準時間(Central Time): シカゴ、ダラス、ヒューストンなど
- EST: 東部標準時間(Eastern Time): ボストン、ニューヨーク、マイアミなど
プログラム起動時はPSTになっています。おおよそロッキー山脈より西側、例えばサンフランシスコはPST(太平洋時間)です。ロッキー山脈やそれより東側のふもと、例えばコロラド州などはMST(山岳部時間)です。それより東のシカゴやテキサスなどはCST(中部時間)です。一番東の大西洋側、例えばニューヨークやフィラデルフィアなどはEST(東部時間)です。
北米のタイムゾーンは以下のようになっています。
Time-J.net 世界時計 - 世界の時間と時差 - アメリカの時差と現在時刻 から引用
おおよそ南北の境界線で、4つのタイムゾーンに分けられていますので、ヨーロッパよりは分かりやすいと思います。
[2] キーを長押しすると、北米のタイムゾーン設定画面に切り替わります。
今は、⇒ マークが PST についており、太平洋標準時間に設定されていることが分かります。
矢印キー [◀] と [▶] を使って、⇒ マークを他のタイムゾーンに移動させ、[EXE] キーで確定します。
以下の画面では、2:PDT 4:DL と表示されており、北米は太平洋夏時間に設定されていることが分かります。
ここで、[4] キーを使って、北米の標準時間と夏時間を切り替えることもできます。
同じ英語でもヨーロッパと北米では夏時間の言い方が変わるようで、北米では夏時間をサマータイムとは呼ばず、デーライトセービングタイム(Daylight Saving Time)と言い、各タイムゾーンの夏時間の略称は S を D に置き換えて以下のように呼ばれます。
- PST (太平洋標準時間) ←→ PDT (太平洋夏時間)
- MST (山岳部標準時間) ←→ MDT (山岳夏時間)
- CST (中部標準時間) ←→ CDT (中部夏時間)
- EST (東部標準時間) ←→ EDT (東部夏時間)
夏時間開始と終了の日時を調べる
[3] キーか [4] キーのいずれかを長押しすると、以下の画面が表示され、ヨーロッパと北米の夏時間の開始と終了の日時が分かります。
この表示内容は、プログラム中に書き込んであります。夏時間開始と終了の日時は毎年変わりますので、新しい年の開始と終了日時が分かれば、プログラムを変更して、表示内容を更新しておきます。
使い方の例
課 題
明日は2014年10月30日。モントリオールに出張中の担当者と、日本に居る私、そしてドイツのメンバーとで電話会議を行いたい。出張者は午前中に訪問先との約束があるので、早朝が良い。そこで、明日の2014年10月30日にモントリオール、ドイツ、日本のそれぞれの参加者の都合が良く、無理のない電話会議開始時間を決めたい。
まず、TIME ZONE を起動します。
さて、2014年10月30日では、ヨーロッパと北米の夏時間がどうなっているのか、最初に知る必要があります。
上で紹介した Time-J.net などを利用して調べても良いのですが、それも面倒なので TIME ZONE には、夏時間の開始と終了の日時を表示する機能を持たせています。[3] キーか [4] キーを長押しすると、この情報を表示します。
これを見ると、2014年10月30日時点で、ヨーロッパでは夏時間が終わって標準時間になっており、北米ではまだ夏時間です。
そこで、[4] キーで北米を夏時間にします。
2:PDT と表示されているので、太平洋夏時間です。モントリオールは東部時間のタイムゾーンにあるので、東部時間に切り替えます。
[2] キーを長押し、
矢印キーで、東部発時間の EDT を選びます。
左矢印 [◀] キーを一回押すだけで、⇒ マークは右下へ移動します。
左矢印 [◀] キーを、ポン、ポン と叩き続けると、⇒ マークは、グルグルと巡回するようになっています。
⇒ マークを EDT に合わせた後、
[EXE] キーで確定すると、
このように、タイムゾーンと夏時間の設定が終わりました。
なお、ヨーロッパは、1:CET、2:ST となっているので中央ヨーロッパ標準時、つまり2014年10月30日のドイツ の設定になっているので、ここは変更する必要はありません。
ここで、モントリオール時間を試しに、6:00 とします。
そこで、[2] キーを押して、入力ボックスさせ、
6 と入力し、
[EXE] キーで確定すると、
モントリオールの時間とともに、日本とドイツの時間も表示されました。
日本とヨーロッパの人は、この時間で良いのですが、モントリオールの人は、チョット朝が早すぎるようです。
そこで、6:30 に変更してみましょう。
[2] キーを押して、入力ボックスに 630 と入力し、
[EXE] キーで確定すると、
日本は19:30、ドイツは11:30、モントリオールは6:30なので、これで電話会議開始時間としましょう....
...といった使い方になります。
Chapter 5 では、このような「世界時間表示プログラム TIME ZONE」 を紹介してゆきます。
つづく...
⇒ Casio Basic入門24 / 目次
応援クリックをお願いします。励みになるので...
- 関連記事
-
テーマ : プログラム関数電卓
ジャンル : コンピュータ