Casio Basic入門23

Casio Basic入門
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します
最終更新: 2015/01/19
追記: 2015/07/03


 4. CasioBasicを使ってみる(続き)

前回: Casio Basic入門22 - Chapter 4


Chapter 5

◆ Chapter 5 の目標: サブルーチンを使いこなす

スマホや携帯電話には、世界の主要都市の時間を教えてくれるアプリがあります。私がスマホで使っている「世界時計アプリ」を紹介します。

SmartPhoneHomePage 

ベルリン、ロサンゼルス、日本の現在の時間が一目瞭然です。

では、ロサンゼルスの朝9時に合わせて電話したいけど、日本時間で何時になるのか?
世界時計は、その答えを教えてはくれません。

さらに、サンフランシスコ、オックスフォード(イギリス)、日本の三カ所の人が、Skypeで会議をしたいけど、全員に負担のない時間帯にするには、何時に電話会議を設定したらいいのか?
答えを知るには、苦労するのではありませんか?

これらの問題を解決するのが、今回紹介するプログラムです。


時差について

まず時差について、簡単に整理してみます。

アメリカの大陸部では、西の端と東の端では時差が3時間あり、これらの地域の間には4つのタイムゾーンがあります。これに加えてアラスカ、ハワイなどのタイムゾーンがあります。ニューヨークの朝10時はロサンゼルスでは朝7時になります。

カナダは6つのタイムゾーンがありますが、そのうち4つは、アメリカの大陸部と同じです。そこで、アメリカとカナダの大陸部をひっくるめて、北米と言うことにします。

ヨーロッパはもっと複雑で、5つ以上のタイムゾーンがあります。

さらに、北米やヨーロッパには夏時間があり、夏と冬では1時間時間が変わります。夏時間が始まる時と終わる時は、北米とヨーロッパでは異なる日時が設定され、それらは毎年異なります。従って、時差の計算は結構面倒で、うっかりすると間違えてしまいます。



世界の時間換算プログラム:TIME ZONE

私は日常的に海外とのやりとりをしているので、各国の時間を調整するのがいつも面倒でした。慣れていて頭の良い人なら、パッパッパと暗算できるのですが、見ていると計算を間違えることがよくあります。

そんなことから、日本、ヨーロッパ、北米のどれかの時間を入力したら、他の時間が連動して表示される「世界の時間換算プログラム」が欲しくなり、Casio fx-5800P の Casio Basic で作ったプログラムが、TIME ZONE です。

ほぼ毎日愛用しています。

以下からソースコードのPDFをダウンロードできます。
fx-5800P Casio Basic ソースコードのダウンロード ⇒ TimeZone


以下のような画面です。

34-Get Good_Time 

操作も表示も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 を選びます。

1-Menu 

プログラムが起動すると、以下のような表示になります。

2-Startup 

ここで、メニュー番号 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ケタの数字を入力できます。

3-JST_inputBox 

ここで、4桁の数字 1420 を入力し、

4-JST_inputBox2 

[EXE]キーを押して入力を確定すると、ヨーロッパと北米の時間も同時に表示されます。

5-JST_input 

日本時間 14:20 は、中央ヨーロッパ時間で 6:20 、北米の太平洋時間では 21:20 だと分かります。



夏時間の設定

ここで、[3] キーを押すと、ヨーロッパ時間が夏時間になります。

6-DL_at_EU 

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:ST3:DL に変わってるのが分かり、現在は夏時間を示していることが分かります。

[3] と [4] は、押すたびに STDL が切り替わる「トグル動作」をします。

[3] をもう一度押して、標準時間に戻しました。

5-JST_input 



タイムゾーンの設定と変更

ヨーロッパのタイムゾーンのうち、TIME ZONE では、以下の4つを選んで変更できます。
- WET: 西ヨーロッパ時間、West Europe Time: イギリスやポルトガルなど
- CET: 中央ヨーロッパ時間、Central Europ Time: ドイツ、フランス、イタリアなど
- EET: 東ヨーロッパ時間、East Europe Time: フィンランド、トルコ、ウクライナ、ギリシャなど
- FET: 極東ヨーロッパ時間、Fareast Europe Time: モスクワなど


ヨーロッパのタイムゾーンは、以下のようになっています。
EU-TZ 
Time-J.net 世界時計 - 世界の時間と時差 - ヨーロッパのタイムゾーンについて から引用


イギリスのタイムゾーンを GMT と言うことが多いのですが、同じタイムゾーンにはポルトガルなども含まれますので、今回はGMTではなくて、WET (西ヨーロッパ時間、West Europe Time) という略称を使うことにしました。

モスクワ時間 (MSK UTC+3)という略称もよく使われますが、TIME ZONEでは極東ヨーロッパ時間 (FET) という略称を採用しました。モスクワ以外にもこのタイムゾーンに属する地域があるので、このようにしました。

なお、都市名で時差を設定する仕様にすると、fx-5800P の Casio Basic では、多くの主要都市名をプログラム中に書き込む必要があり、このように予め用意した都市名以外の時間を知りたい場合は、ネットなどでタイムゾーンを調べる必要があります。どうせ、タイムゾーンを調べる必要があるのならば、いきなりタイムゾーンの名称で設定しても労力は同じです。

従って、TIME ZONE プログラムでは、都市名ではなくてタイムゾーンを選択する仕様にして、汎用性を優先させました。


ヨーロッパのタイムゾーン設定を変更したい時は、[1] キーを長押し。すると以下のような「ヨーロッパのタイムゾーン設定画面」に切り替わります。

8-Select_EU_TimeZone 

現在設定されているタイムゾーンは、⇒ マークが示しています。ここで、矢印キーの左 [◀] か 右 [▶] を押して ⇒ マークを移動させます。この画面では、CET (中央ヨーロッパ標準時間) に設定されていることが分かります。

なお、夏時間に設定されているときは、ヨーロッパの各タイムゾーンの略称は、以下のような少し異なる略章で表示されます。

- WET (西ヨーロッパ標準時間) ←→ WEST (西ヨーロッパ夏時間)
- CET (中央ヨーロッパ標準時間) ←→ CEST (中央ヨーロッパ夏時間)
- EET (東ヨーロッパ標準時間) ←→ EEST (東ヨーロッパ夏時間)
- FET (極東ヨーロッパ標準時間) ←→ FEST (極東ヨーロッパ夏時間)

ヨーロッパでは夏時間をサマータイムと言って、各略称に S が加わります。


さて、タイムゾーン設定画面で、左矢印 [◀] を一回押すと、⇒マークが WET へ移動します。

9-Select_EU_TimeZone2 

ここで、右下の ▶E は、[EXE] キーを押すと、設定が確定することを示しています。

では、[EXE] キーを押して、タイムゾーンを WET で確定すると、時間表示の画面に戻ります。

10-WET 

CET (中央ヨーロッパ標準時間)では 6:20 だったものが、WET (西ヨーロッパ標準時間)では 5:20 に変化しました。CET のドイツでの 6:20 は、WET のイギリスでは 5:20 だと言うことも分かります。
この時 JST (日本)では 14:20であることは変化していません。
また、2:PDT  4:DL と表示されており、北米の太平洋夏時間では 22:20 だと示しています。

夏時間でのヨーロッパのタイムゾーン設定画面は以下のようになります。

18-TZSelect_EU_DL 

このように、タイムゾーンの設定を変える際に、夏時間であることが分かるので、勘違いを防げます。


ここで、例題です。
イギリスの朝9:30に電話で話をしたいと思えば、日本時間で何時に電話をかければ良いのか?

先ず、[1] キーを押して、入力モードに入ります。

11-inputWET  

4桁の「入力ボックス」が表示されたので、ここで 930 と3桁だけ入力します。

12-inputWET2 

これで、[EXE] キーを押して確定すると、

13-WET930 

1:WET の右には、0930 と表示されました。4桁すべてを入力せず、3桁入力も受け付けるようにしています。

日本時間 0:JST のところは、1830 と変わりました。日本の夕方の6:30に電話すれば、イギリスの朝 9:30 に話が出来ることが簡単に分かります。

入力の省略機能ですが、次のようなこともできます。

[1] キーを押して、ヨーロッパ時間を入力モードにし、2桁の 10 とだけ入力します。

14-WET1000input 

そして [EXE] キーで確定すると、以下の画面のように 1:WET  1000 と表示されます。

15-WET1000input3 

入力時に省略したものは 0 と判断しています。

では、9:00 を入力するのに、1桁の 9 とだけ入力しても、0900 と判断される筈です。

16-WET900input 

このように、4桁の入力ボックスに、1桁の 9 を入力して、[EXE] キーで確定すると、

17-WET900input2 

1:WET のところは、0900 となります。

このような入力の省略機能は、数行のプログラムコードで、とても簡単に実現できます。


次に、北米のタイムゾーンについて説明します。

北米には、アメリカとカナダでは、それぞれ異なるタイムゾーンがありますが、大陸部は共通した4つのタイムゾーンがあり、プログラム TIME ZONE では、以下の共通した4つのタイムゾーンを設定できるようにしています。

- PST: 太平洋標準時間(Pacific Time): シアトル、サンフランシスコ、ロサンゼルスなど
- MST: 山岳部標準時間(Mountain Time): ソルトレイクシティー、デンバーなど
- CST: 中部標準時間(Central Time): シカゴ、ダラス、ヒューストンなど
- EST: 東部標準時間(Eastern Time): ボストン、ニューヨーク、マイアミなど

プログラム起動時はPSTになっています。おおよそロッキー山脈より西側、例えばサンフランシスコはPST(太平洋時間)です。ロッキー山脈やそれより東側のふもと、例えばコロラド州などはMST(山岳部時間)です。それより東のシカゴやテキサスなどはCST(中部時間)です。一番東の大西洋側、例えばニューヨークやフィラデルフィアなどはEST(東部時間)です。

北米のタイムゾーンは以下のようになっています。

US-TZ 
Time-J.net 世界時計 - 世界の時間と時差 - アメリカの時差と現在時刻 から引用

おおよそ南北の境界線で、4つのタイムゾーンに分けられていますので、ヨーロッパよりは分かりやすいと思います。


[2] キーを長押しすると、北米のタイムゾーン設定画面に切り替わります。

TZSelect_NA 

今は、⇒ マークが PST についており、太平洋標準時間に設定されていることが分かります。

矢印キー [◀][▶] を使って、⇒ マークを他のタイムゾーンに移動させ、[EXE] キーで確定します。

以下の画面では、2:PDT   4:DL と表示されており、北米は太平洋夏時間に設定されていることが分かります。

20-DL_NA 

ここで、[4] キーを使って、北米の標準時間と夏時間を切り替えることもできます。


同じ英語でもヨーロッパと北米では夏時間の言い方が変わるようで、北米では夏時間をサマータイムとは呼ばず、デーライトセービングタイム(Daylight Saving Time)と言い、各タイムゾーンの夏時間の略称は SD に置き換えて以下のように呼ばれます。

- PST (太平洋標準時間) ←→ PDT (太平洋夏時間)
- MST (山岳部標準時間) ←→ MDT (山岳夏時間)
- CST (中部標準時間) ←→ CDT (中部夏時間)
- EST (東部標準時間) ←→ EDT (東部夏時間)



夏時間開始と終了の日時を調べる

[3] キーか [4] キーのいずれかを長押しすると、以下の画面が表示され、ヨーロッパと北米の夏時間の開始と終了の日時が分かります。

27-TZInfo 

この表示内容は、プログラム中に書き込んであります。夏時間開始と終了の日時は毎年変わりますので、新しい年の開始と終了日時が分かれば、プログラムを変更して、表示内容を更新しておきます。



使い方の例

課 題
明日は2014年10月30日。モントリオールに出張中の担当者と、日本の居る私、そしてドイツのメンバーとで電話会議を行いたい。出張者は午前中に訪問先との約束があるので、早朝が良い。そこで、明日の2014年10月30日にモントリオール、ドイツ、日本のそれぞれの参加者の都合が良く、無理のない電話会議開始時間を決めたい。


まず、TIME ZONE を起動します。

2-Startup 


さて、2014年10月30日では、ヨーロッパと北米の夏時間がどうなっているのか、最初に知る必要があります。

上で紹介した Time-J.net などを利用して調べても良いのですが、それも面倒なので TIME ZONE には、夏時間の開始と終了の日時を表示する機能を持たせています。[3] キーか [4] キーを長押しすると、この情報を表示します。

27-TZInfo 

これを見ると、2014年10月30日時点で、ヨーロッパでは夏時間が終わって標準時間になっており、北米ではまだ夏時間です。

そこで、[4] キーで北米を夏時間にします。

28-Set_NA_DL   


2:PDT と表示されているので、太平洋夏時間です。モントリオールは東部時間のタイムゾーンにあるので、東部時間に切り替えます。

[2] キーを長押し、

21-TZSelect_NA_DL 

矢印キーで、東部発時間の EDT を選びます。

左矢印 [◀] キーを一回押すだけで、⇒ マークは右下へ移動します。

左矢印 [◀] キーを、ポン、ポン と叩き続けると、⇒ マークは、グルグルと巡回するようになっています。


⇒ マークを EDT に合わせた後、

22-TZSelect_NA_DL2 

[EXE] キーで確定すると、

29-Set_NA_EDT  

このように、タイムゾーンと夏時間の設定が終わりました。

なお、ヨーロッパは、1:CET、2:ST となっているので中央ヨーロッパ標準時、つまり2014年10月30日のドイツ
 の設定になっているので、ここは変更する必要はありません。

ここで、モントリオール時間を試しに、6:00 とします。
そこで、[2] キーを押して、入力ボックスさせ、

30-Input_NA_EDT  

6 と入力し、

31-Input_NA_EDT2 
  
[EXE] キーで確定すると、

32-Set_NA_EDT_at_600 
 
モントリオールの時間とともに、日本とドイツの時間も表示されました。

日本とヨーロッパの人は、この時間で良いのですが、モントリオールの人は、チョット朝が早すぎるようです。

そこで、6:30 に変更してみましょう。

[2] キーを押して、入力ボックスに 630 と入力し、

Change_NA_EDT_to_630 

[EXE] キーで確定すると、

34-Get Good_Time 

日本は19:30、ドイツは11:30、モントリオールは6:30なので、これで電話会議開始時間としましょう....

...といった使い方になります。


Chapter 5 では、このような「世界時間表示プログラム TIME ZONE」 を紹介してゆきます。




つづく...



Casio Basic入門24 / 目次




応援クリックをお願いします。励みになるので...

人気ブログランキングへ


FC2ブログランキングへ



カシオプログラム関数電卓 FX-5800P-N カシオプログラム関数電卓 FX-5800P-N
(2006/09/22)
CASIO(カシオ)

商品詳細を見る



keywords: fx-5800PCasioBasic、世界時間換算, プログラミング入門プログラム関数電卓

リンク集 | ブログ内マップ


関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

コメントの投稿

非公開コメント

最新記事
最新コメント
カテゴリ
C# (3)
検索フォーム
Visitors
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム関数電卓は、プログラムを作り・使ってナンボ!

実際に触って気づいたこと、自作プログラム、電卓プログラミングについて書いています

おもしろい・役に立つならクリックしてください。励みになります。
にほんブログ村 IT技術ブログ 開発言語へ
にほんブログ村


人気ブログランキングへ


FC2ブログランキングへ


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

RSSリンクの表示
最新トラックバック
ブロとも申請フォーム

この人とブロともになる

QRコード
QR