0

私は、スケジューリングが必要なアプリケーションに取り組んでいます (Microsoft Outlook ミーティングの繰り返しに存在するものと同様) 機能。毎日、毎週、毎月、毎年ジョブをスケジュールし、各スケジュールにバリエーションを持たせることができます (例: 毎月の第 2 月曜日または隔週の月曜日など)。

基本的には、Microsoft Outlook の会議スケジュールと同じように機能するはずです。

このロジックを実装するために使用できるポインタ、リンク、提案、または利用可能な API は非常に役立ちます

ありがとう

4

2 に答える 2

1

あなたはQuartzを見たいと思うかもしれません

于 2012-06-07T11:59:40.610 に答える
0

私は最近似たようなことに取り組みました。主な問題は今週の最初の日を見つけることでした。そこから必要な曜日を見つけるのは比較的簡単で、もう1つの問題は翌月の最初の日を見つけることでした。

取得するコードは次のとおりです

  • 今週の始まり(今週の月曜日)
  • 来週の始まり(次の月曜日)
  • 翌月の初め(翌月の1日)

    import java.util.Calendar;
    import java.util.Date;
    
    // ... 
    
    public static long getWeekStart()
    {
        //INIT Date
        Calendar cal = Calendar.getInstance();
        cal.clear(Calendar.HOUR_OF_DAY);
        cal.clear(Calendar.MINUTE);
        cal.clear(Calendar.SECOND);
        cal.clear(Calendar.MILLISECOND);
    
        //get start of this week in milliseconds
        cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
        return cal.getTime().getTime();
    }
    
    public static long getNextWeek()
    {
        //INIT Date
        Calendar cal = Calendar.getInstance();
        cal.clear(Calendar.HOUR_OF_DAY);
        cal.clear(Calendar.MINUTE);
        cal.clear(Calendar.SECOND);
        cal.clear(Calendar.MILLISECOND);
    
        //get start of this week in milliseconds
        cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
    
        // start of the next week
        cal.add(Calendar.WEEK_OF_YEAR, 1);
        return cal.getTime().getTime();
    }
    
    public static long getNxtMonthStart()
    {
        Calendar cal = Calendar.getInstance();
        cal.clear(Calendar.HOUR_OF_DAY);
        cal.clear(Calendar.MINUTE);
        cal.clear(Calendar.SECOND);
        cal.clear(Calendar.MILLISECOND);
    
        // get start of the month
        cal.set(Calendar.DAY_OF_MONTH, 1);
    
        // get start of the next month
        cal.add(Calendar.MONTH, 1);
    
        return cal.getTime().getTime();
    }
    

これが曜日の取得に役立つことを願っています。

于 2012-06-07T12:12:31.030 に答える