ラベル Java の投稿を表示しています。 すべての投稿を表示
ラベル Java の投稿を表示しています。 すべての投稿を表示

2010年6月2日水曜日

日付の表示にJavaが全く聞く耳を持たなくなってきた。そりゃ型が違うからね。

最高に意味不明なタイトルになりましたが、元ネタは鳩山辞任会見の「政権与党の仕事に国民が徐々に聞く耳を持たなくなってきた」です。
ちなみに、本日午前10時ごろに辞任表明。
鳩山首相の仕事の中でも一番の出来との評判です。

さて、Javaにおいては日付型というものがとっつきづらい型として存在しています。
型というか、クラスなのですが、これがいくつか存在していまして…
基本的なものとして"Date"と"Calendar"が存在します。
これらの型を使う理由は恐らく…
 1、曜日を知りたい
 2、前日(前月、前年)を知りたい
というのが多いでしょう。

たとえば、「2010年6月2日」 と入力すると、「水曜日」 と返すような処理。
もしくは、生年月日を入力すると、生まれてからの日数を返すようなサイトでは型を使うのが便利です。
何故便利かというと… 年月日をDate型に格納すると、その年月日に対応する曜日が取得出来たり、Calendar型では年月日の加減算が出来たりします。
これらの型を使用せずに求める値を得ようとすると、以下の処理が必要と思われます。

・曜日取得
 1、特定の日(⇒基準日)の曜日を定数として持つ
 2、基準日と曜日を知りたい日が何日離れているか計算する
 3、計算結果÷7 の余りを見て、曜日を判定する

・生まれてからの日数取得
 1、生年月日が今年の場合、月日だけの引き算を行う
 1-1、月日の引き算は、生年月日の月の日数(生年月日~その月の末日)+生年月日の翌月~前月+今月の日数 という考え方で行う。
 1-2、2月の日数は閏年を計算に入れる必要がある。
 2、生年月日が今年ではない(普通は去年以前ですね)場合、年月日の引き算を行う
 2-1、生年月日の年の日数(月日の引き算で、生年月日~年末 を実行)+生年月日の翌年~前年+今年の日数 という考え方で行う。
 2-2、2月の日数と閏年の日数を計算に入れる必要がある。

かなり面倒ですねぇ。
出来なくはないですがやりたくありません^^;
その為、DateやCalendarを使用するわけです。
しかし、計算結果を使用する際にはDateやCalendarのままで使えない場合が多いので、Stringやintにしなくてはならず… 意外とその手間がかかるのが困りもの。

困ったところで、総理のように投げっぱなして終了です。


2010年4月8日木曜日

JavaとJavaScriptの境界

JavaとJavaScript
知らない人からしてみると「同じじゃないの?」と言いたくなる名前です。
どちらもプログラミング言語なのですが、用途や使い方は全く異なります。
今後、このブログでどちらの言語もよく登場すると思いますので違いについて書いて見たいと思います。
尚、詳しく知りたい方はGoogleに「Java wiki」とか「JavaScript wiki」と打ち込んで検索してみてください。
きっと詳しく正しく長々しい説明を見ることができます。

Java【じゃば】
 MicrosoftのVC++や.netと並んで、システム構築に使用される事の多いプログラミング言語。
ビルド(書いたプログラムをコンピューターが理解できる形式に変換すること)してから、コンピューター上で動かす。
インターネットを利用するシステムの場合、サーバーで動くのはこちらの言語で書いたプログラムが主体。

JavaScript【じゃばすくりぷと】
 IE(インターネットエクスプローラ)やFireFox(ファイアーフォックス)と言ったブラウザで表示するWebページ(今見ているブログもその一つです)の表示などに使用するプログラミング言語。
書いたプログラムはブラウザが読み取って実行してくれる。

簡単に書こうと心がけたのですが、専門用語を使わずに説明できませんでした ○| ̄|_
Javaは普段使うようなソフトを作る事が出来る言語、JavaScriptはWebページを使いやすくするための言語。つまり全然守備範囲が異なる言語になります。
守備範囲が異なるのに似た名前を持っている為、システム開発現場では2つを混同してしまうこともよくあります。
私自身、社会人1年目にこの2つを混同して困ったことに…
しかし、この2つの言語の境界は以下の事がわかると非常に簡単だったりします。
それは
 『JavaScriptはブラウザ上でしか動かない』
です。(原則、ですよ。例外はあります^^;)
ブラウザというのはHTMLファイルを読み取って表示するものです。
JavaScriptが動くのは、サーバーでJavaがHTMLファイルを作った後の話になる、というわけです。

これがJavaとJavaScriptの境界
…って、ちゃんと技術を勉強している人に怒られそうな説明ですが、区別するための一つの見方ですね。