获取当月的过去几周的日期

时间:2017-11-29 10:12:53

标签: android android-layout calendar android-calendar

我试试这个,但没有得到我要求的格式。

 SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd-MMM-yyyy");
    for (int i = 7; i >=1; i--) {
        Calendar calendar = new GregorianCalendar();
        calendar.add(Calendar.DATE, i);
        String day = sdf.format(calendar.getTime());
        Log.i("days", day);
  

2017年12月6日星期三   2017年12月5日星期二   2017年12月4日星期一   2017年12月3日星期日   2017年12月2日星期六   2017年12月1日星期五   2017年11月30日星期四

我想要这样的格式,开始星期和星期结束日期。

  

10月1日至7日10月8日至14日10月15日至21日

1 个答案:

答案 0 :(得分:2)

试试这段代码,

 public static void getWeeksOfMonth(int month, int year)
    {
        SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd-MMM-yyyy");
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, month);
        cal.set(Calendar.DAY_OF_MONTH, 1);

        int ndays = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
       System.out.println(ndays+"<<<ff" );

        for (int i = 1; i <= ndays; i++)
        {
            String day = sdf.format(cal.getTime());
            System.out.println(day+"<<<" );
              Log.e("", day+"<<<");
            if(i % 7 == 0){
                Log.e("", "=======week days===========");
            }
            cal.add(Calendar.DATE, 1);
        }

    }

// only previous week days get
  SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd-MMM-yyyy");
        for (int i = 7; i >=1; i--) {
            Calendar calendar = new GregorianCalendar();
            calendar.add(Calendar.DATE, -i);
            String day = sdf.format(calendar.getTime());
            System.out.println(day+"<<<" );
        }