ActionScriptを勉強していたら、便利そうなテクニックが書かれていたので、メモ。
例えば、2009年10月4日を、スラッシュで区切って、「2009/10/4」と表現する時に、出来れば、日にちを表す「4」を、「04」こんな感じに表現したい時の処理。
例えば、if文とかを使って、条件分岐で、1〜9の時は、頭に「0」を追加して、10以上の時は、そのまま表示。こんな感じでもいいけど、条件分岐をせずに処理する方法が下記の様な書き方。
ActionScript
var my_date:Date = new Date();
var nYear:Number = my_date.fullYear;
var nMonth:Number = my_date.month + 1;
var nDate:Number = my_date.date;
var year_str:String = String(nYear).substring(2);
var month_str:String = String(nMonth + 100).substring(1);
var date_str:String = String(nDate + 100).substring(1);
var today_str:String = year_str + "/" + month_str + "/" + date_str;
trace(today_str);
重要なのは、赤字の3行の処理。
まずは、var year_str:String = String(nYear).substring(2);は、単純に、取得された年(2009とか)の後ろの2文字を、substring();で抜き取っている。(09とか)
で、var month_str:String = String(nMonth + 100).substring(1);と、var date_str:String = String(nDate + 100).substring(1);は、数値は、月と日で違うけど、処理としては同じ。
まず、取得された日にち(もしくは月)の数値に100を足す。String(nDate + 100)は、この時点で、今日が4日の場合、「104」になる。その100を足した数値の後ろの2文字を年同様、substring();で抜き取れば、「04」になる。
このやり方だと、日にちや月が一桁でも二桁でも使える。
例その1)
13日の場合
13+100=113
後ろの2文字は、「13」
例その2)
3日の場合
3+100=103
後ろの2文字は、「03」
ちなみに、substring();は、今回は第二引数を省略した形で書いてます。
多分、javascriptでも、同様の考え方で同じ結果が出せるでしょう。(多分ね。)