0

私の仕事はそのようなものです - 特定の日付を設定する必要があります - 1913 年 1 月 1 日、つまり水曜日です。次に、ユーザーが生年月日を入力する必要があります。次に、プログラムはその人が生まれた曜日を計算します。グレゴリオ暦を使用して計算を行うことは許可されておらず、自分でアルゴリズムを入力する必要があります。

ここまでで、入力のセットアップが完了しました。

public class FindDay4Birthdate 
{
    public static void main(String[] args) 
    {
        // declare variables
        String bbday = "";
        String bbmonth = "";
        String bbyear = "";
        int bday;
        int bmonth;
        int byear;

        String daysList[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

        Scanner sc = new Scanner(System.in);
        System.out.print("Please enter your date of birth - ");
        sc.useDelimiter("[-/.\\s]");
        if (sc.hasNext()); {
            bbday = sc.next();
            bbmonth = sc.next();
            bbyear=sc.next();
            bday = Integer.parseInt(bbday);
            bmonth = Integer.parseInt(bbmonth);
            byear = Integer.parseInt(bbyear);
        } // end if statement
    }
}

ここからどこへ行けばいいのかわからない。次の一歩を踏み出す方法についての助けをいただければ幸いです。mod 7 を使用する必要があることはわかっていますが、どのように、またはどこで使用すればよいかわかりません。

4

4 に答える 4

1

あなたが探しているのは、ゼラーの合同です

于 2013-08-27T03:49:34.093 に答える
1

1) 1913 年 1 月 1 日からユーザー入力までの日数を数えます。うるう年の場合は +1 日も数えます。

2) 1) %7 の結果は、残りを返します。0 の場合は水曜日です。そうでない場合は、1 = 木曜日 2 = 金曜日などを数える必要があります。

于 2013-08-27T02:56:50.653 に答える
0

Calendar クラスの使用が許可されている場合(おそらく許可されていない場合)、次の手順を実行します。

Calendar birthday = Calendar.getInstance();
birthday.set(byear,bmonth - 1,bday);

//Create your time 1/1/1913
Calendar startDate = Calendar.getInstance();
startDate.set(1913,0,1);

int numberOfDays = 0;

//Loop counting days
while(startDate.before(birthday))
{
    numberOfdays++;
    startDate.add(Calendar.DATE, 1);
}

//Get index for your days array
int index = ((numberOfDays%7)+3)%7;
String day = daysList[index]; 
于 2013-08-27T03:24:55.003 に答える