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

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

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

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

Q&A

解決済

2回答

4005閲覧

calendarクラスを利用して誕生日、あと何日後か?

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

0クリップ

投稿2019/04/22 05:40

前提・実現したいこと

import java.util.Calendar;

public class BirthDay {

public static void main(String[] args) { Calendar cal = Calendar.getInstance(); Calendar birth = Calendar.getInstance(); long diffTime = cal.getTimeInMillis() - birth.getTimeInMillis(); int diffDayMillis = 1000 * 60 * 60 * 24; int diffDays = (int) (diffTime / diffDayMillis); System.out.println("後," + diffDays + "日です。"); }

}
のプログラムに自分の誕生日とあと何日かを入れるものです。
誕生日を入れる方法が分からないので教えてください。

発生している問題・エラーメッセージ

エラーは特にありません。
後、0日後のみが実行結果に表示されています。

該当のソースコード

calendarクラス利用

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

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

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

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

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

m.ts10806

2019/04/22 05:56

コードはマークダウンのcode機能を利用してご提示ください
guest

回答2

0

ベストアンサー

誕生日の年月日を指定するのであれば以下のメソッドを使用すればよいです。
Calendar#set(int, int, int)

Calendar#set(int year, int month, int date)

例えば2019年5月1日であれば以下のように指定します。

Java

1Calendar calendar = Calendar.getInstance(); 2calendar.set(2019, 4, 1);

月は0始まりなので、5月であれば4と指定することに注意してください。
年と日はそのままの値で大丈夫です。


一応他の設定方法として、「年だけ」「月だけ」のように個別で指定したいのであれば以下のメソッドを使用します。
Calendar#set(int, int)

Calendar#set(int field, int value)

fieldは年であればCalendar.YEAR、月であればCalendar.MONTHのように指定します。
valueは年や月の値を指しますが、月は上と同じく0始まりであることに注意してください。

Java

1calendar.set(Calendar.YEAR, 2018);

java calendar setで調べればだいたいヒットしますし、
個別指定であればjava calendar set 月とかで調べれば良いでしょう。

投稿2019/04/22 06:07

編集2019/04/22 06:09
dice142

総合スコア5158

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

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

退会済みユーザー

退会済みユーザー

2019/04/22 06:24

回答ありがとうございます。 もう1つ質問なのですが、今年の誕生日が過ぎている場合はどうプログラムすればよいのでしょうか?
dice142

2019/04/22 06:31

それは仕様次第です。 「x日経過しています」とすべきなのか翌年の誕生日と比較すべきなのか、要件によって実装する処理は異なります。
退会済みユーザー

退会済みユーザー

2019/04/22 06:40 編集

課題で「今年既に誕生日を迎えた方は、来年の誕生日まで後何日を調べなさい。 」と言われている場合はどうすればよいのでしょうか?
dice142

2019/04/22 06:47 編集

誕生日の年を来年となるように設定すれば良いでしょう。 設定方法は私の回答で示したメソッドを使用すればできるはずです。
退会済みユーザー

退会済みユーザー

2019/04/22 06:57

長々と質門に答えていただきありがとうございました。 また機会がありましたらお願いいたします。
guest

0

単にコンソール出力するだけなら直書きでも良いのでは。
configとかpropertiesでもよいでしょうけど

投稿2019/04/22 05:56

m.ts10806

総合スコア80765

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問