Javaのプログラムでコマンドライン引数から年月を取得してカレンダーを表示する方法

このQ&Aのポイント
  • コマンドライン引数で指定された年月のカレンダーを表示するJavaプログラムを作成したいです。
  • import文を使用せずにカレンダークラスを利用する方法を知りたいです。
  • 具体的なコードの例や参考になる情報があれば教えてください。
回答を見る
  • ベストアンサー

javaの質問です。

javaのプログラムの質問です。 *import文は使用出来ない > java CalShow 201411 表示イメージです。 分かり辛くて申し訳ありません。 1日は土曜日です 2014/11/01 日 月 火 水 木 金 土             1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 コマンドライン引数で入力された年月のカレンダーを,上記のように表示させる、という問題なのですが、上記では2014年11月ですが、コマンドライン引数に201412と入力すれば、2014年12月のカレンダーが表示される、という具合です。import文を宣言せずにカレンダークラスを使用する方法は分かるのですが、それをどのようにすれば、コマンドライン引数から年月を割り出してカレンダーを表示させるのか検討もつきません。申し訳ないのですが、どなたか参考コードを書いていただけないでしょうか。よろしくお願い致します。

  • Java
  • 回答数2
  • ありがとう数7

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.1

カレンダークラスなんていりませんよ。 ちなみにJavaScriptで作ったものがあるので、入れておきますね。 function cal(YYYY, MM){ monthDay = new Array(31,28,31,30,31,30,31,31,30,31,30,31); monthName = new Array("1-睦月","2-如月","3-弥生","4-卯月","5-皐月","6-水無月","7-文月","8-葉月","9-長月","10-神無月","11-霜月","12-師走"); now = new Date(); yyyy = now.getYear(); mm = now.getMonth()+1; dd = now.getDate(); YYYY1 = Math.floor(YYYY / 4); YYYY2 = Math.floor(YYYY / 100); YYYY3 = Math.floor(YYYY / 400); if (YYYY != YYYY1 * 4) monthDay[1] = 28; else if (YYYY != YYYY2 * 100) monthDay[1] = 29; else if (YYYY != YYYY3 * 400) monthDay[1] = 28; else monthDay[1] = 29; leftUP = - YYYY - YYYY1 + YYYY2 - YYYY3; if (monthDay[1] == 29) leftUP = leftUP + 1; for (i = 0; i < MM - 1; i++){ leftUP = leftUP - monthDay[i]; } leftUP1 = Math.ceil(leftUP / 7); leftUP = leftUP - leftUP1 * 7; document.write('<table border=1 cellspacing=0 bordercolor=white>'); document.write('<tr><td colspan=2 align=center>' + YYYY + '</td>'); document.write('<td colspan=5 align=right>' + monthName[MM - 1] + '</td></tr>'); document.write('<tr align=center><td><font color=red>日</font></td><td>月</td><td>火</td>'); document.write('<td>水</td><td>木</td><td>金</td><td><font color=blue>土</font></td></tr>'); for (y = 0; y < 6; y++){ document.write('<tr align=center>'); for (x = 0; x < 7; x++){ DD = leftUP + y * 7 + x + 1; document.write('<td>'); if (yyyy == YYYY && mm == MM && dd == DD) document.write('<font color=green><b>'); else if (x == 0) document.write('<font color=red>'); else if (x == 6) document.write('<font color=blue>'); if (DD >= 1 && DD <= monthDay[MM - 1]) document.write(DD); else document.write('<br>'); if (yyyy == YYYY && mm == MM && dd == DD) document.write('</b></font>'); else if (x == 0) document.write('</font>'); else if (x == 6) document.write('</font>'); document.write('</td>'); } document.write('</tr>'); } document.write('</table>'); }

その他の回答 (1)

  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.2

>コマンドライン引数から年月を割り出してカレンダーを表示させるのか検討もつきません うーん、あまりにも簡単な話過ぎて、何に悩んでいるのかわかりません。 例えは悪いかもしれませんが、「1+1は?」という問題が考えるのが面倒だから、誰か答えを書いてください、 といっているようにしか思えないのですよ。 一体何がわからないのでしょうか、補足してください。 (単なる丸投げでないのなら)

関連するQ&A

  • JAVAの質問

    下のと同じ結果の宿題をしてて、なかなか、同じ結果でなくて凄く困っています。教えていただければ助かります。よろしくお願いします。 条件:コマンドライン引数一つしか使えない > java Syukudai 使い方:java Syukudai 日付(数字のみ) > java Syukudai 4 15 使い方:Syukudai 日付(数字のみ) > java Syukudai 0 日付は1~30の範囲で与えてください。 > java Syukudai 1 1日は金曜日です。 > java Syukudai 6 6日は水曜日です。 > java Syukudai 17 17日は日曜日です。 > java Syukudai 31 日付は1~30の範囲で与えてください。 > java Syukudai aaa 日付は整数で与えてください。

  • javaに関して質問があります。

    コマンドライン引数の文字列をすべて大文字に変換したものと、全て小文字に変換したものを表示するプログラムを書きなさい。クラス名はkoin w:\> Java koin Hello HELLO hello w:\> Java koin Java JAVA java

  • getactualmaximum

    Javaの勉強を最近独学ではじめた初心者です 早速ですが質問です 問・コマンドライン引数に入力された年と月からその月が何日まであるかを表示しなさい(日付その他のチェックも行う事) という問題があった場合なのですが自分なりに調べてみてgetactualmaximumを使うというのがわかり、指定した年と月から末日を表示する事(例・ソース上で2008年12月を指定→実行→31と表示される)は出来たのですが入力をする場合(プログラム上で年月の入力を促す)のソースの書き方がどうしてもわかりません どなたか参考としてソースを教えてもらえないでしょうか?

    • ベストアンサー
    • Java
  • JAVAを勉強中です。

    JAVAを勉強中です。 課題問題で、「コマンドライン引数から2つの整数値を入力して、その和、差、積、商を求めよ」と、 あります。 まったくわかりません。 初心者なので、分かりやすく教えてほしいのですが・・・。 お願いします。

  • antコマンドでAndroidアプリを作成する

    Eclipseを使用してJAVAでAndroidソースを書いています。 Androidプロジェクトを作成後、「ant release」コマンドを使い、コマンドラインからAndroidアプリを生成したいと思っています。 このとき、コマンドに何かしらの引数を与え、その引数の内容をAndroidアプリのJavaソースに反映させたいと思っています。 具体的には、テキストフィールドに表示する文字列を、antでアプリを作成するときのコマンドの引数の内容から取りたいのです。 色々調べましたが、これを実現できる方法が思い当たりません。 大変申し訳ございませんが、諸先輩方のお知恵を拝借したく、投稿させていただきました。 何卒ご指南いただけましたら幸いです。

    • ベストアンサー
    • Java
  • 質問です。

    コマンドライン引数で(整数)(スペース)(+またはー)(スペース)(整数)の形式の数式を与えて実行すると、和または差の計算を行うプログラムを書きなさい。クラス名はkoin W:\> java koin 10 + 4 14 W:\> java koin 6 - 10 -4

  • Javaインタプリタを探しています

    業務でJava言語でのソフト開発を使っています。 昔使っていたもので、コマンドラインからJavaソースが実行できるものがありました。 jarファイルが提供されていて、それを実行するとプロンプトが現れて、 そこにソースコードを入力すると1行ずつ解釈して実行してくれるものです。 >System.out.println("Hello"); Hello > というような感じです。 実際にはループやif文、import文なども解釈します。 以前勤めていた会社では愛用していましたが、会社が変わってしまい、 さらにはそのツールの名前自体忘れてしまいました。 教えてgooも探してそれらしいツールも見つけたのですが、 Java1.2用であり、現在使っているJava1.5では使えませんでした。 (DynamicJavaというものでした) このツールについて、ご存知の方、教えていただけますでしょうか。

    • ベストアンサー
    • Java
  • Javaについてちょっとした質問があるのですが。

    たとえば、入力された数字が「5」の場合 5に2をかけて、結果を表示せよ。 というプログラムはどう書くのでしょうか? D:\Work>java test 5 演算結果は 10 です 上記のようにコマンドプロンプトに表示させたいんです。 まだ勉強始めたばかりなので教えてください!

    • ベストアンサー
    • Java
  • Javaのプログラミングについてご指導お願いします。

    現在Javaを勉強しています。 このたび下記の実行結果となるように、次のソースにコードを追加しなくてはいけなくなったのですが、どうすればよいかわからずまったく手をつけることができません。 【ソース】 ・ Shopping.java class Shopping { public static void main(String args[]) { Fruit fruit; //下で生成するFruitクラス型オブジェクト名の定義 int price = 0; //商品検索結果(単価)を格納する変数 switch(args.length){ //コマンドライン引数の個数を判定 case 1: //コマンドライン引数が1つ(商品名のみ)の場合の処理を記述 //****** 以下、コメントに対応するコードを追加し、処理を完成させます ********* // Fruitクラスのオブジェクトを生成 // 商品検索(Fruitクラスのsearch()メソッドを実行) // 結果表示(Fruitクラスのdisplay ()メソッドを実行) case 2: // コマンドライン引数が2つの場合の処理を記述 //****** 以下、コメントに対応するコードを追加し、処理を完成させます ********* // Fruitクラスのオブジェクトを生成 // 商品検索(Fruitクラスのsearch()メソッドを実行) // 結果表示(Fruitクラスのdisplay ()メソッドを実行) default: // コマンドライン引数が1つ,2つ以外の場合の処理を記述 //****** 以下、コメントに対応するコードを追加し、処理を完成させます ********* // 引数の個数が違うエラーメッセージを表示する } } } ・ Fruit.java public class Fruit{ // インスタンス変数の定義 private String fName; //商品名 private int fNum; //個数 // 商品リストの登録(商品名、単価) String[][] fruittable = { {"Strawberry","500"},{"Apple","150"},{"Orange","100"}, {"Mango","1500"},{"Banana","200"},{"Peach","400"} }; // 商品名と個数を引数にもつコンストラクタの定義 //****** ここにコンストラクタの定義を追加します ********* //search()メソッド 単価を戻す int search(){ //search()メソッドの戻り値retval int retval = -1; //****** 以下、コメントに対応するコードを追加し、処理を完成させます ********* //商品リストにコマンドライン引数から入力した商品名と同じ商品名があるか検索し、 //見つかった場合は単価を戻す。見つからなかった場合は、-1を戻す。 } // display ()メソッド 引数として単価を受け取る void display(int price){ //****** 以下、コメントに対応するコードを追加し、処理を完成させます ********* // 商品名、単価、個数、合計金額を画面に表示する // 商品名が見つからなかった場合には、エラーメッセージを表示する } } 【実行結果】 ☆ 商品名と個数を入力すると、商品名、単価、個数、合計金額を表示する(個数が入力されない場合は1個とみなす) > java Shopping Orange 商品:Orange 単価:100円 個数:1個 合計:100円 > java Shopping Orange 3 商品:Orange 単価:100円 個数:3個 合計:300円 ☆ 商品が見つからなかった場合には、エラーメッセージを表示する > java Shopping Melon 3 Melonは商品ではありません。 ☆ 引数の数が0または3つ以上の場合は、エラーメッセージを表示する > java Shopping Orange Apple Peach 引数には商品名と個数を入力してください。 【条件】  (1) Shoppingクラスはmain()メソッドを持つ。  (2) 実行時の引数に商品名と個数を入力する。個数が入力されなかった場合は1とみなす。  (3) Fruitクラスのsearch()メソッドは、商品が存在するかどうかを検索するメソッドで、商品が存在した場合は単価を戻す。商品が見つからなかった場合には-1を戻す。  (4) Fruitクラスのdisplay ()メソッドは、商品名、単価、個数から合計金額を計算して表示するメソッドである。商品が登録されていない場合はメッセージを表示する。 Javaの先輩方に、どのようにコードを打てばよいのかご解説頂ければと思います。 恐れ入りますがよろしくお願いします。

  • Javaがインストールできない

    Vistaパソコンでjavaをダウンロードしようとしたのですが、途中で「コマンドラインの引数が無効です」という表示されてインストールできません。 お絵かき掲示板などを利用するためにインストールしたいのですが、どうしたらいいでしょうか。

専門家に質問してみよう