0

学校の課題では、特定の日付を「計算」できる必要があります。

特定の日付 (曜日) に自動的に割り当てて印刷する必要がある接触の瞬間がいくつかあります…</p>

たとえば、1 月 1 日から、月曜日が祝日などである場合を除き、毎週月曜日を連絡の瞬間に割り当てる必要があるとします。データベースに、チェックする日付形式の有効な日のリストがあります。

私が今まで持っているもの:

私が考えていた日は、特定の日から始めて、7日を追加することを考えていました

私は日付を設定します:

set(int year, int month, int date) 

そして、週ごとに 7 を追加します。

cal.add(Calendar.DAY_OF_MONTH, 7); 

次に、この日付が mysql テーブルの日付と等しいかどうかを確認します。

compareDatesByCalendar(Date javaDate, Date mysqlDate) { 
    Calendar javaCal = Calendar.getInstance();
    Calendar mysqlCal = Calendar.getInstance(); 
    javaCal.setTime(javaDate);
   mysqlCal.setTime(mysqlDate); 
    if (javaCal.equals(mysqlCal)) {
        ……..
    } 
else{
….}

その日がリストにない場合は、さらに 7 つ追加して、もう一度確認します … .

すべての瞬間が得られるまで、それらを配列に追加して印刷します

これはこれを受け入れる正しい方法ですか、それともより良い方法ですか?

毎週木曜日に予約を入れたいとしましょう。開始点 (たとえば、1 月 1 日から開始) からの最初の日を確認する方法はありますか?

最大数週間 (利用可能な瞬間) がある場合はどうなりますか? どうすればこれをブロックできますか?

どんな提案も役に立ちます!ありがとう

4

2 に答える 2

1

日付に重点を置いているため、Joda API を確認することをお勧めします。標準の DateTime Java API よりも多くの機能を提供します。開始するには、こちらを参照してください。

于 2012-04-16T13:02:14.653 に答える
0

私は最近、このユース ケースを解決するように設計されたLammaを開発しました。

    HolidayRule ukHoliday2015 = simpleHolidayRule(
            date(2015, 1, 1), date(2015, 4, 3), date(2015, 4, 6),
            date(2015, 5, 4), date(2015, 5, 25), date(2015, 8, 31),
            date(2015, 12, 25), date(2015, 12, 28)
    );

    List<Date> dates = Dates.from(2015, 12, 23).to(2015, 12, 30).byDays(2).except(weekends()).except(ukHoliday2015).build();

    for (Date date: dates) {
        System.out.println(date);
    }

出力は次のとおりです。

Date(2015,12,23)
Date(2015,12,29)
于 2014-06-27T17:59:05.950 に答える