2012年4月27日金曜日

ヴィータとPlaystation suiteで、日付サーチを作ってみました

今回の記事も、PSVITA(プレイステーション・ヴィータ)と、自作アプリ開発環境PlayStation Suiteにてアプリを作った話について書かせて頂きたいと思います。

今回は、ヴィータで日付を扱うプログラミングを試してみたくて、指定日付のn日後はいつか?というのを教えてくれるアプリを作ってみました。
たとえば、「2012年4月26日」の「1日後」を指定すると、「2012年4月27日 金曜日」と教えてくれるわけです。
例によって、PssStudioで開発して、PS Suite DEVを介してヴィータ実機に開発したソフトを転送し、そのPS Suite DEVでソフトを起動します。

起動直後の画面はこんな感じです。
日付の入力が、タッチ用のウィジェットになっていますよね。そう、これを使ってみたかったんですよー。
日付をダイヤルのようにカチカチとリング回転出来るんですー。
これで日付の指定は楽々っ。んでもって、n日後は入力します。

入力は、システムの入力画面になります。
本当は、入力後にボタンを押して結果を表示するように作ったんですが、もうこの入力だけでも派手なアクションになっちゃっているんで、あらためてボタン押してもらうのも大変だなぁと入力したら自動で結果が出るようにプログラミングしてみました。

入力が終わって画面が戻った頃には、結果が下に表示されるという流れです。
そう、結果表示も日付のウィジェットを使ってみました。
曜日はラベルに表示しています。

※ちなみに、日数ではなくて日付ウィジェットの内容を変更して結果を表示する場合を想定して、「日後を知りたい」は結果表示ボタンになっておりまして、ここを押しても結果が算出される仕様になっております。

ヴィータ発売日から179日後を調べるとこんな感じ。
特典として無料で付いてきた3G回線の使用期限日です(発売日の場合)。

ちなみに、日付の処理のメインロジックは以下のようになっています。
C#は、DateTime構造体や、TimeSpanを使用した日付処理が極めて強力かつシンプル。ヴィータでもその威力を余すところ無く享受出来るわけです。
「こんな感じ」って主旨なので、詳細解説やら、他のロジック・・・入力チェックやイベントの実装等は割愛させて頂きますね。
public void GetSONOHI()
{
       //DTP_1が入力用の日付ウィジェット、DTP_2が出力用の日付ウィジェットです。        
 DateTime oDT_WORK;
 DateTime oDT;
 string[] sArrWEEK={"日","月","火","水","木","金","土"};
 try
 {
  oDT_WORK = DTP_1.Date;
  oDT = oDT_WORK.AddDays(Convert.ToDouble(INPUT_DAY.Text));
  DTP_2.Year = oDT.Year;
  DTP_2.Month = oDT.Month;
  DTP_2.Day = oDT.Day;
  DTP_2.Visible = true;
  RESULT_YOBI.Text = sArrWEEK[Int32.Parse(oDT.DayOfWeek.ToString("d"))]+"曜日です";   
 }
 catch(System.Exception e)
 {
  throw new System.Exception("Cls_Scene.GetSONOHI(" + e.Message + ")");
 }
}
※ちなみに、ヴィータは最新のC#言語に対応しており、PC側でも.NET Framework4.0に対応しています。
匿名型(var)や、ジェネリック型など、基底の部分では厳密な型で運用しつつ、プログラミングは柔軟な方法で行えるという流儀。
マイクロソフトは、学者的な思考を飛び越えた現場の感覚を鋭く持ったメーカーで、C#言語を使うたびに尊敬の念が高まります(C#自体はもうマイクロソフトの製品ではなくて汎用言語に昇格しておりますが)。
ヴィータはマイクロソフトとソニーが協調した本当に恵まれた存在なんだなぁと感慨深いですね。

ヴィータと、布団での開発の友「Aspire 5750G」です。
内容はともかくとして、ヴィータで動くプログラムを自分で作れるのは本当に楽しいですね!!
仕事の疲れも吹っ飛ぶわ~・・・と言えるまでになれたら良いんですが、さすがにそこまでは。