Android Display date from one week to another like (Thursday to Thursday )

后端 未结 3 1970
轮回少年
轮回少年 2021-01-16 01:30

I have been stuck on this issue for the last two days. My issue is this: how can I display the date from one week to another week (Thursday to Thursday)? For example:

<
相关标签:
3条回答
  • 2021-01-16 02:02

    try this,

    String start_date = "01-30-2014";  // Start date
                        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
                        Calendar cal = Calendar.getInstance();
                        try {
                            c.setTime(sdf.parse(start_date));
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                        cal.add(Calendar.DATE, 7);  // number of days to add,in your case its 7
                        SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy");
                        String to_date = sdf1.format(cal.getTime()); 
    

    Actually i don't like android Calendar( I prefer Joda-Time) but above solution should work for you

    0 讨论(0)
  • 2021-01-16 02:18

    Finally i got a solution and solve my problem:

    in oncreate:

    TextView tv_chart_menuvotes = (TextView) findViewById(R.id.tv_chart_menuvotes);
    String csPrevThur = getPreviousThursday();
        String csNextThur = getNextThursday();
        tv_chart_menuvotes.setText("Vote from " + csPrevThur + " To "+ csNextThur);
    

    outside the oncreate:

    public String getPreviousThursday() {
        String csDate = "";
        int perSut = 0;
        Calendar calendar = Calendar.getInstance();
        int day = calendar.get(Calendar.DAY_OF_WEEK);
    
        switch (day) {
        case Calendar.SUNDAY:
            perSut = -3;
            break;
        case Calendar.MONDAY:
            perSut = -4;
            break;
        case Calendar.TUESDAY:
            perSut = -5;
            break;
        case Calendar.WEDNESDAY:
            perSut = -6;
            break;
        case Calendar.THURSDAY:
            perSut = 0;
            break;
        case Calendar.FRIDAY:
            perSut = -1;
            break;
        case Calendar.SATURDAY:
            perSut = -2;
            break;
        }
    
        SimpleDateFormat mDF = new SimpleDateFormat("dd-MM-yyyy");
        calendar.add(Calendar.DAY_OF_MONTH, perSut);
        csDate = mDF.format(calendar.getTime());
    
        System.out.println("Prev Thursday >> " + csDate);
    
        return csDate;
    }
    
    public String getNextThursday() {
        String csDate = "";
        int perSut = 0;
        Calendar calendar = Calendar.getInstance();
        int day = calendar.get(Calendar.DAY_OF_WEEK);
    
        switch (day) {
        case Calendar.SUNDAY:
            perSut = 4;
            break;
        case Calendar.MONDAY:
            perSut = 3;
            break;
        case Calendar.TUESDAY:
            perSut = 2;
            break;
        case Calendar.WEDNESDAY:
            perSut = 1;
            break;
        case Calendar.THURSDAY:
            perSut = 7;
            break;
        case Calendar.FRIDAY:
            perSut = 6;
            break;
        case Calendar.SATURDAY:
            perSut = 5;
            break;
        }
    
        SimpleDateFormat mDF = new SimpleDateFormat("dd-MM-yyyy");
        calendar.add(Calendar.DAY_OF_MONTH, perSut);
        csDate = mDF.format(calendar.getTime());
    
        System.out.println("NextThursday >> " + csDate);
    
        return csDate;
    }
    
    0 讨论(0)
  • 2021-01-16 02:21

    In your case, setMaxDate() is your friend. The docs say:

    Sets the maximal date supported by this DatePicker in milliseconds since January 1, 1970 00:00:00 in getDefault() time zone.

    So, get the time of the next week as long and use the method.

    Have a look here Set Limit on the DatePickerDialog in Android?

    0 讨论(0)
提交回复
热议问题