- ベストアンサー
javascriptで週替わりでメッセージ
javascriptで週替わりでメッセージを出す作業を自動化したいのですが たとえば8月12日-28日の一週間はAメッセージ19日-25日はBメッセージ かなり大量にメッセージと週毎でメッセージがわけられてるのでIF文で考えると気が遠くなります・・・ CSVでメッセージのデータはあるのですが、なにかいい方法ないでしょうか? 漠然とした質問ですみません。いい案お持ちの方ご教授いただければ幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 >正直ajaxは未知の領域なので分かりません。java自体初心者なので・・・。 誰でも最初は初心者です。いろいろやってみてわかるようになります。 (私もほぼ初心者ですから) ところで、補足でご提示のデータはCSVのようには見えませんが? まぁ、テキストデータであればほぼ同様の処理で対応が可能かと思います。 #1の回答の繰り返しになりますが、おおむねの手順として… 1)テキストデータをajaxで読込む ajaxに関しては、ぐぐれば沢山の情報が見つかりますので、それで確認してください。 わからない場合は、jqueryやprototypeなどのライブラリを利用することで、比較的簡単に実現できます。 あるいはajaxはあきらめて、スクリプトの中に配列等で直接定義しておくという方法もあります。 (ajaxで読込む場合も、処理する際には一旦配列に変換することになるでしょうから) 2)テキストデータを配列化する レコードの区切りが改行であるのなら、テキストをsplit()などを利用して配列に変換し、ループ処理できるようにします。 改行で無い場合もほぼ同様の処理で、まずは1レコードずつに切り離します。 3)日にちデータから該当データを選択する new Date()でクライアントのマシンの日付が取得できますので、各レコードについてループしながら比較処理をして該当するデータを探します。 日付オブジェクトの操作に関しては、「javascript date」をキーに検索すれば情報が得られるかと思います。 各レコードから日付部分を(比較できるように)データとして取り出すには、正規表現などを利用するのがよろしいかと。 正規表現に関しては、「javascript 正規表現」などをキーに検索してください。 4)該当するレコードがあれば、そのメッセージ部分を表示。 なければ、無い旨を表示。(あるいはデフォルトのメッセージを表示) データの内容がどうなっているのか不明ですが、データ内にクォーテーションがあったりなかったりするような場合はテキストの処理に注意が必要です。 また、テキストの日付データが、8/30-9/5や、12/25-1/6のように月を跨いだり、年を跨いだりするようなことがある場合は、それも考慮にいれて日付の比較を行なう必要があるでしょう。
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
もとになっているデータと日付をどのように対応させる仕組みなのかわかりませんが、 CSVデータを一旦ajaxで読み込んで、そこから表示するデータを選択して、表示すればよさそうな…
補足
ありがとうござます。 正直ajaxは未知の領域なので分かりません。java自体初心者なので・・・。 もとのデータはCSVデータで 8/5-11 Aメッセージ 8/12-18 Bメッセージ 8/19-25 Cメッセージ ・・・ ・・・・ のように永遠(80行くらい)続いてます。 週替わりのメッセージを 現状手作業でjavaのソース(下記)を書換えてやってます。 なんとか自動化できないでしょうか? objIE.document.getElementById("messageBox").value = "Aメッセージ"; 1週間後に objIE.document.getElementById("messageBox").value = "Bメッセージ"; と 手作業て変えてます。 良案あればご教授いただければ幸いです。
お礼
ありがとうございます。 うやむやだったアルゴリズムが見えてきた感じがします。 気合で配列に変換してみます。・・あとは 日付比較をjava上でどうやるかは見当してみます。