読者です 読者をやめる 読者になる 読者になる

今の時間を表示する

くもみさきのほたるこもり アプリを開発することになりました

 と、いうわけで、始まったアンドロイドアプリ開発です。

 今回は、「時間を表示する」ところまでできたら、その経緯を書き記しておこうと思っていた件について、書き記しておこうと思います。

 とりあえず、時間を表示するところまではできました。

 あれはそう、1月の30日のことだったように思われます……。

 大昔です。

 記憶が曖昧です。

 何も、サボっていたわけではない。インフルエンザにかかってたんだ!!!

  なので、記憶が本当に曖昧です。

 できたときに書けばよかった……。

 ただ、プログラミングで陥りがちなループとして、一つの成功を元に、欲を出して次の課題にのめり込んでいってしまうというアレで、今、乗ってるうちに的なノリで、次のことしてたら、わたしの方がウイルスにやられてね?

 

 なんだっけ、そう、まず、時計を表示したかったんです。

 なぜならば、現実とは違う速さで時間を動かしたかったからです。

 とりあえず、今が向こうの時間で何時何分何秒か、決めたい。全てはそこからだ。そのために、阿呆みたいに年末年始(休みはなかったけど)せっせと暦の計算をしていたんだ、エクセル何冊分もかけて!

 

 何はともあれ、まず最初にすべきことは、現実のほうの、時間を表示することだと思いました。現実時間の秒数から、向こうの時間を決めていたからです。

 余談ですが……いろいろ久しぶりすぎて、ミリ秒まで時間を特定できることを失念していました。 

 ミリ秒が使えるなら、秒単位ではなく、もっと細かく時間設定ができたのにな……と少し途方に暮れましたが、今さらやり直すのは諦めました。諦めたけど……書いてる今、ちょっと気になっている……。

 つまり、今が全何秒か、表示してほしい。まさに今!

 そしたらね、全ではないけど、ミリ秒を返してくれるやつがあるっていうじゃない。ああ、とりあえず、それで何ミリ秒か聞いて、計算すればいいやって思ったんです。

 なんや簡単やないか。

 しかしですね、実行した瞬間が何ミリ秒かしか教えていただけないんですね、あれだけだと。

 

 ここからね、錆びついていたのはブログだけじゃなくって、お前の脳みそだってことを思い知る、ネット界の旅が始まりました。

 かつてに比べると、格段に検索機能が向上して、こちらが調べたいものがすいすい出てくる時代になりましたが、それは専ら、日常生活の豆知識程度のこと。

 今の時刻を表示するアプリが作りたいんじゃボケェ!と検索しても、答えにはなかなか行き着かないし、行き着いたところで、久しぶりすぎて、プログラムの解読に手間取る。

 思い出しましたよ……16歳の冬、今は無き銀天街の丸三書店で買った専門書を片手に、フリーのCGIプログラムをおとんのプリンタから延々吐き出して、何が書かれているのか地道にチェックしていた日々を!

 いや、実際には、そこからけっこう時間が経った分、ある程度は賢くなったとみえて、思い出しさえすれば、後は楽だったんだけども……。

 

 まあ、要するにですね、毎秒表示が更新されるように、ループ再生してもらえばいいわけです。

 全秒が、リアルタイムで自分のスマホに更新されて表示されているのを見たときには、感動を覚えました。

 全てのミッションを成功した気になりました。

 何にもできてないんだけど。

 

 ここから、今度は向こう時間の算出です。

 計算式そのものは、エクセルで作った時に出してあるので、それをJavaに直せばいいだけです。

 いいだけです。

 だけ……。

 まずね、{}の中で、変数を宣言しちゃいけないとかね、そういう基本的なことからね、本当に忘れていましてね……なんで、わたしの変数が消えるんや、どこへ行ってしまったんや、と騒ぎが起こったりなどいたしました。

 アホでした。

 まあ、このくらいのアホはまだかわいいもんでした。

 

 ようやく、変数とも仲直りできて、式が全部書けた!

 これで、向こう時間がわたしのスマホに表示されるはずや!

 と思って、走らせてみたら、十数秒ごとに、年が、178年から35年などに変わる素敵なアプリが完成しました。

 足されるならまだしも、なんで減るねん。

(正しくは、2016年になるはずだった)

 このときが、一番、混乱しました。ただ、なんとなく、起きそうな予感はしていたので、半笑いでした。

 しかたがないので、全ての変数を表示させつつ、何度か試行させてみたところ、単に計算式の数値が間違っていたことが判明。変数とか、プログラミングとか、そういうんじゃなくって、単に、A/(B×C×D)のカッコを忘れていたっていう、数学……いや、算数レベルでした。

 アホっていうか、かなりどうでもいいな、この話。

 

 自分でも飽きてきましたが、こうして、1分が48秒で、1時間が48分で、1日が16時間で、1年が182日(1年は8カ月で、ひと月22日前後:5年と160年と46080年に一回閏年が来るが、46080年は絶対に来ないので排除した)であるところの世界で使用されている「太陽暦」の時計が完成したのでした。

 そう。

 問題は、これが、「太陽暦」なところ。

 できたら、そのう、月の満ち欠けの計算と、暦も作ったので、そっちを表示させたいんだけど、なんというか、もう、そうなると、めん……

 まあ、それはおいおい、実装していけたらな、と思っています。というか、ないと困る。ちゃんと、占いまで作ったんだからね!

 

 次の課題は、実際にグラフィックを配して昼と夜を表現したいと思います。

 できたら、季節によって朝と昼の長さを変えたいのですが、それは暦にも関わって来るので、めん……どくさがってたらなんもできんじゃないか!

 でも、そういう風に考えると、天気のことも考えなくちゃならないし、天気……天気ってどうしたらいいのかな、自分で配分を考えてランダムに出てきてもらったらいいのかな。

 よく、未来のドームでは、過去の天気を参考に決めるっていうけど、どっちが現実的なのかな。

 たださ、思うに、例えば今の天気と、10年前の天気では、気候変動の影響で変わってきている部分が多いんだよね。じゃあ、何を基本と考えるのかってしたときに、ジュラ紀と昭和ではどっちみち、全く別の気候なわけじゃん。

 いや、そう考えていくと、そもそも、あれは、地球じゃないわけじゃん。ジュラ紀も昭和もない、別の世界なわけなんだから、わたしが考えた気候でいいんじゃないの?

 それはそうなんだけどね、ただ、どっちがより、現実的かってことですよ。いや、この話の流れから、現実もへったくれもないんだけど、そういう意味での現実じゃなくって、プログラムとして実装するに当たって、どちらが楽に走るかってことですよ。あんまり複雑化させると、わたしも嫌だけど、スマホも嫌でしょう。

 

 何だこの話。

 とりあえず、朝と夜が一目でわかるようにしてきます!