Biorhythmクラスのメソッド

------------------------------------

バイオリズムを計算するメソッド

これには

の三つがあります。代表でgetPhysicalBiorhythm()を見ましょう。

public int getPhysicalBiorhythm() {
    return (int)(liveDays() % PHYSICAL_PERIOD);
}

やっていることは簡単で、すぐ後で紹介するliveDays()で「誕生日」から「バイオリズムを計算する日」までの日数を計算し、それをPHYSICAL_PERIOD(=23 身体の周期)で割った余りを返しています。

あとはこの値を用いてサイン・カーブを描いても良いですし、単純に好不調を判断しても良いです。そこは、このメソッドを呼び出した側で決めれるようにしてあります。

------------------------------------

メソッドliveDays()

「誕生日」から「バイオリズムを計算する日」まで何日あるか計算するメソッドです。

public long liveDays() {
    CalcDate calcCalcDate = new CalcDate();
    calcCalcDate.set(calcYear, calcMonth, calcDate);
    CalcDate birthdayCalcDate = new CalcDate();
    birthdayCalcDate.set(birthdayYear, birthdayMonth, birthdayDate);
    return calcCalcDate.getPastDays() - birthdayCalcDate.getPastDays();
}

CalcDateというのは私が作った色々な日付計算を行うクラスです。次項で説明します。

やっていることは

CalcDate calcCalcDate = new CalcDate();
calcCalcDate.set(calcYear, calcMonth, calcDate);

CalcDateのインスタンスを作成し、そのインスタンスに「バイオリズムを計算する日」の年月日をセットします。同様に

CalcDate birthdayCalcDate = new CalcDate();
birthdayCalcDate.set(birthdayYear, birthdayMonth, birthdayDate);

でもう一つインスタンスを作成し、それには「誕生日」の年月日をセットします。

CalcDate.getPastDays()は西暦1年1月1日からセットされた年月日までの日数を返すメソッドなのでcalcCalcDate.getPastDays()で西暦1年1月1日から「バイオリズムを計算する日」までの日数が、birthdayCalcDate.getPastDays()で西暦1年1月1日から「誕生日」までの日数が得られます。したがって、それを引いたものを

return calcCalcDate.getPastDays() - birthdayCalcDate.getPastDays();

として返してやれば「誕生日」から「バイオリズムを計算する日」までの日数が返ります。

------------------------------------

アクセスメソッド

インスタンス変数をprivateで宣言したので、それを制御するアクセスメソッドが必要になります。

public void setBirthday(int birthdayYear, int birthdayMonth, int birthdayDate) {
    this.birthdayYear = birthdayYear;
    this.birthdayMonth = birthdayMonth;
    this.birthdayDate = birthdayDate;
}

は「誕生日」をセットするためのメソッドです。同様に「バイオリズムを計算する日」をセットするメソッドとしてsetCalculateDay()を準備しています。

値をセットするだけでなく、インスタンス変数の値を取り出すメソッドも必要です。

public int getBirthdayYear() {
     return birthdayYear;
}

が「誕生日」の年を取り出すメソッドです。

getBirthdayMonth()getBirthdayDate()getCalcYear()getCalcMonth()getCalcDate()も同様のメソッドです。

------------------------------------

前の項目へ次の項目へ

「メイキング・オブ・バイオリズム」のページへ