質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

4回答

6096閲覧

java 1月1日の曜日を決めて入力された◯月◯日から曜日を求める。

te623

総合スコア4

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/05/28 12:30

編集2020/05/28 13:18

学校の課題で1月1日の曜日を決めて標準入力で与えられる日付から曜日を出力するという課題をしています。
本当にどうやったらいいのかがわからないので少しでもいいのでアドバイスがほしいです。

プログラム内容

1月1日の曜日はコマンドライン引数で与えられた文字列で決定します。
sunなら日曜日 monなら月曜日 tueなら火曜日 ・・・ となっています。
標準入力で与えられるのは月と日でScannerクラスのnextIntメソッドを使います。
0月0日の場合プログラムが終了します。
うるう年は考慮しません。

想定される出力結果

実行すると下のようになるようにしたいです。

$ java Study01_4 sun 曜日を調べる日の情報を入力してください. > 1 11 1月11日は水曜日です. 曜日を調べる日の情報を入力してください.> 4 30 4月30日は日曜日です.曜日を調べる日の情報を入力してください. > 9 2 9月2日は土曜日です. 曜日を調べる日の情報を入力してください. > 0 0 終了します.

現在できているプログラム

現在できているプログラムは下のようになります。

java

1public class Study01_4{ 2 public static void main(String[] args){ 3 while(true){ 4 System.out.println("曜日を調べる日の情報を入力してください"); 5 System.out.print("> "); 6 int month= new java.util.Scanner(System.in).nextInt(); 7 8 if(month == 0){ 9 System.out.print("終了します"); 10 System.exit(0); 11 } 12 } 13 } 14}

ScannerクラスのnextIntメソッドの仕様もあまりわからないので
わかりやすく説明していただきたいです。

作らなければならないと考えているプログラム

入力された曜日の判定
1月1日に与えられた曜日を決定する
入力された日付の曜日を求める

最後に

正直他力本願だと言われても否定はできません。
しかし自分なりに調べたりしても本当にわかりませんでした。

どんな風に考えれば良いや、何からすべきだなど
少しでもいいので本当にアドバイスがほしいです。
回答していただいた方には多くの質問をするかもしれませんがお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ツェラーの公式を実装すればいいと思います。

投稿2020/05/28 14:36

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

参考情報

  • [ Java ] 日付に対応する曜日を取得する (Calendar.DAY_OF_WEEK)

http://hensa40.cutegirl.jp/archives/5373

  • Java 日時の差分を求めるサンプル

https://itsakura.com/java-diffdate

投稿2020/05/28 20:21

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momon-ga

2020/05/29 00:58

> 1月1日の曜日はコマンドライン引数で与えられた文字列で決定します 1月1日の曜日が指定されたCalendarって簡単に作れるものですか? ちょっと自分で試したのですが、うまくいかなくて・・・
katoy

2020/05/29 11:10

new SimpleDateFormat("yyyy-MM-dd").parse("2001-01-01"); --> 月 new SimpleDateFormat("yyyy-MM-dd").parse("2002-01-01"); --> 火 new SimpleDateFormat("yyyy-MM-dd").parse("2003-01-01"); --> 水 new SimpleDateFormat("yyyy-MM-dd").parse("2009-01-01"); --> 木 new SimpleDateFormat("yyyy-MM-dd").parse("2010-01-01"); --> 金 new SimpleDateFormat("yyyy-MM-dd").parse("2005-01-01"); --> 土 new SimpleDateFormat("yyyy-MM-dd").parse("2006-01-01"); --> 日 です。 これをつかって 1月1日, 曜日から 何年の Calender をつかうかを決めて。 月と日を変更して その曜日をもとめても良いかもしれません。
momon-ga

2020/05/30 02:13

おー。ありがとうございます。 やはり、そんなに単純ではなかったのですね。 簡単では、ありますが、面倒ですねw
guest

0

ベストアンサー

どんな風に考えれば良い

入力された日と1月1日の差(日数)を求めるプログラムを書いてください。
たとえば、1月1日なら0日。1月2日なら1日のような感じ。

つぎに求めた日数を7で割ったあまりを求めてください。

引数で渡された曜日から、上記の分だけ曜日をずらせばよいです。
0なら、入力された曜日。1なら入力された次の曜日。

ちなみに、年が入らないからうるう年か、わからないけど2月は28日前提なんですかね。

投稿2020/05/28 12:57

momon-ga

総合スコア4820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

te623

2020/05/28 13:15

回答ありがとうございます。 うるう年は考慮しないです。 入力された日と1月1日の差を求めるといことなのですが、現在できているプログラムで 入力したのが「1 2」だとするとmonthには1しか入らないので「2」はどうしたら保持できるのかがわからないです。
momon-ga

2020/05/28 13:31

Scannerの使い方が、あまり行儀がよくないです。 ググってください。
te623

2020/05/28 14:08

Scannerの使い方をこれしか知らなかったので、調べたらちゃんとでてきましたありがとうございます。
guest

0

まずは1月1日からの通算日数を求めるコードを書こう。
うるう年ではない場合と、うるう年の場合、それを求めれたらあとは簡単

投稿2020/05/28 12:57

y_waiwai

総合スコア87800

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

te623

2020/05/28 13:18

回答ありがとうございます。 うるう年は考慮しないです。 通算日数を求めるということなのですが、自分の考えではカレンダーを使うということが頭にあるのですがこの考えは間違っているでしょうか? カレンダーを使わずに計算できるものなのでしょうか?
y_waiwai

2020/05/28 13:39

ひとつきの日数は決まってるんだから、単純に計算で求めれるでしょ。
te623

2020/05/28 14:07

すいません、日数を理解していない自分がバカでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問