0

我正在开发一个需要调度的应用程序(就像 microsoft Outlook 会议重复出现的那个)功能。我们可以每天、每周、每月和每年安排工作,并且在每个时间表下都有变化(例如每月的第二个星期一或每周的每个隔周星期一等)。

它基本上应该像在 Microsoft Outlook 会议安排中一样工作。

我可以用来实现此逻辑的任何指针、链接、建议或任何可用的 api 都会有很大帮助

谢谢

4

2 回答 2

1

你可能想看看石英

于 2012-06-07T11:59:40.610 回答
0

我最近在做类似的事情,主要问题是找到本周的第一天,从那里找到所需的星期几相对容易,另一个问题是找到下个月的第一天。

这是获取的代码

  • 本周开始(本周的星期一)
  • 下周开始(下周一)
  • 下个月的开始(下个月的第一天)

    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 回答