指定した回数分の日付や回数がついた文字列を生成する方法

  • このエントリーをはてなブックマークに追加
  • 人気ブログランキング

1週間の予定を立てるときに、ちょっと面倒なこと

毎回、週末に来週の予定をたてますが、

その予定の中で、毎日放送しているテレビ番組があります。

 

たとえば、ワールドビジネスサテライト(WBS)。

これを、日付と曜日をつけてリストにします。

 

例)
WBS(2015/10/19(月))
WBS(2015/10/20(火))

 

あらかじめリストにしておくと、チェックする時は楽ですが、

リストを作成するのが、ちょっと面倒。

 

コピペして、日付と曜日をちょこちょこ変える。。。

 

これが、ほかの番組があったりとか、同じようなリストがたくさん。

 

「もう!面倒くさい!!」

ということで、Webアプリを作りました

「わざわざ作るほどでもないでしょ!」

と、スクリプトを使いこなす人は言うかもしれません。

 

でも、

「わざわざ作ってよかった!」

 

そのWebアプリは、こちらです。

仕組みはシンプル

cfloopタグ

ColdFusionのタグで、「cfloopタグ」があります。

ループ処理でも、日付に関するループ処理ができます。

 

ループ処理の最初と最後の日時をセットし、

指定した間隔でループさせます。

 

<cfloop index="tmp_date" from="#tmpSt.date1#" to="#tmpSt.date2#" step="#CreateTimeSpan(1,0,0,0)#">

 

 


tmpSt.date1、tmpSt.date2は、

CreateDate関数を使って、日付として生成

 

stepの値は、「1日づつ」

日付とカウンターを生成

ループ処理内で、それぞれのパターンにあった値を生成します。

一括して置換できます

<cfset tmp_line = ReplaceList(form.d1,
"{yyyy},{yy},{mm},{m},{dd},{d},{www},{w},{ccc},{cc},{c}",
"#loc.yyyy#,#loc.yy#,#loc.mm#,#loc.m#,#loc.dd#,#loc.d#,#loc.www#,#loc.w#,#loc.ccc#,#loc.cc#,#loc.c#")>

 

 

form.d1の内容の中で、{yyyy}などの文字列があった場合、

loc.yyyyなどの値に変換する。

ループ処理内で生成したデータをまとめる

データをまとめて、画面出力用とします。

これで自分の悩みは解決!

プログラムを作るまでは腰が重かったのですが、

画面部分は以前作ったデモ(こちら)を、ほぼ流用して作りました。

 

自分で作れるようになると、便利です。

ブックマークにしておくと便利かも。

というわけで、よろしければこちらをお使いください。

  • このエントリーをはてなブックマークに追加
  • 人気ブログランキング
最近の投稿
カテゴリー
タグ
アーカイブ
プロフィール