0

ショップの開店時間と閉店時間を設定するために、単純なアジェンダ クラスを作成しようとしています。日によって異なる時間を設定したいので、次のように 2 つのグレゴリオ暦を使用しています。

ここに私のアジェンダクラスがあります:

private SimpleDateFormat openingFormatter = new SimpleDateFormat("EEEE yyyy.MM.dd ' - Your shop is opening at' HH:mm");
private SimpleDateFormat closingFormatter = new SimpleDateFormat(" 'and closing at' HH:mm'.'");
private GregorianCalendar openingHoursCalendar = new GregorianCalendar();
private GregorianCalendar closingHoursCalendar = new GregorianCalendar();
private int totalDays=365;


Agenda(){
    Calendar c = Calendar.getInstance();

    if (openingHoursCalendar.isLeapYear(c.get(Calendar.YEAR))) {
        totalDays++;
    }

    for(int d=1; d<=totalDays; d++) {

        openingHoursCalendar.set(Calendar.DAY_OF_YEAR,d);
        closingHoursCalendar.set(Calendar.DAY_OF_YEAR,d);

        if(openingHoursCalendar.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY){

            openingHoursCalendar.set(Calendar.HOUR_OF_DAY,8);
            openingHoursCalendar.set(Calendar.MINUTE, 0);

            closingHoursCalendar.set(Calendar.HOUR_OF_DAY,19);
            closingHoursCalendar.set(Calendar.MINUTE, 30);
        }

        else {

            openingHoursCalendar.set(Calendar.HOUR_OF_DAY,1);
            openingHoursCalendar.set(Calendar.MINUTE, 1);

            closingHoursCalendar.set(Calendar.HOUR_OF_DAY,1);
            closingHoursCalendar.set(Calendar.MINUTE, 1);
        }

    }
}

public void printFullAgenda(){

    openingHoursCalendar.add(Calendar.YEAR,-1);
    closingHoursCalendar.add(Calendar.YEAR,-1);

    for(int i=0; i<totalDays; i++){

        openingHoursCalendar.add(Calendar.DAY_OF_YEAR,1);
        closingHoursCalendar.add(Calendar.DAY_OF_YEAR,1);

        System.out.print(openingFormatter.format(openingHoursCalendar.getTime()));
        System.out.println(closingFormatter.format(closingHoursCalendar.getTime()));
    }
}

そのため、日曜日は同じ開店時間と閉店時間 (1:01) を印刷し、他の日は 8:00 / 19:30 と印刷することを期待していましたが、結果はすべての日でまったく同じ時間でした (「あなたのお店は08:00 に開始し、19:30 に終了します。」) 理由が本当にわかりません。誰かがこれを手伝ってくれませんか。

ありがとう

4

0 に答える 0