从周数和周数获得周开始和结束日期在机器人年

时间:2011-12-28 06:13:17

标签: android calendar

我希望得到开始日期&一周结束日期,传递给方法的一周数字。例如,如果我将周数作为51,将年份作为2011,则应将我的开始日期设为18 Dec 2011,结束日期为24 Dec 2011

是否有任何方法可以帮助我实现这一目标?

2 个答案:

答案 0 :(得分:19)

您可以使用以下方法获取一周的第一个日期和结束日期

 void getStartEndOFWeek(int enterWeek, int enterYear){
//enterWeek is week number
//enterYear is year
        Calendar calendar = Calendar.getInstance();
        calendar.clear();
        calendar.set(Calendar.WEEK_OF_YEAR, enterWeek);
        calendar.set(Calendar.YEAR, enterYear);

        SimpleDateFormat formatter = new SimpleDateFormat("ddMMM yyyy"); // PST`
        Date startDate = calendar.getTime();
        String startDateInStr = formatter.format(startDate);
        System.out.println("...date..."+startDateInStr);

        calendar.add(Calendar.DATE, 6);
        Date enddate = calendar.getTime();
        String endDaString = formatter.format(enddate);
        System.out.println("...date..."+endDaString);
    }

答案 1 :(得分:3)

您需要使用java.util.Calendar课程。您可以使用Calendar.YEAR方法将年份设为Calendar.WEEK_OF_YEAR,将年份设置为public void set(int field, int value)

只要正确设置了区域设置,您甚至可以使用setFirstDayOfWeek来更改一周的第一天。您的日历实例所代表的日期将是您的开始日期。只需为您的结束日期添加6天。

Calendar calendar = new GregorianCalendar();
// Clear the calendar since the default is the current time
calendar.clear(); 
// Directly set year and week of year
calendar.set(Calendar.YEAR, 2011);
calendar.set(Calendar.WEEK_OF_YEAR, 51);
// Start date for the week
Date startDate = calendar.getTime();
// Add 6 days to reach the last day of the current week
calendar.add(Calendar.DAY_OF_YEAR, 6);
// End date for the week
Date endDate = calendar.getTime();