【问题标题】:Android Display date from one week to another like (Thursday to Thursday )Android 显示日期从一个星期到另一个星期(星期四到星期四)
【发布时间】:2014-02-23 18:30:57
【问题描述】:

过去两天我一直被这个问题困扰。我的问题是:如何显示从一周到另一周(星期四到星期四)的日期?例如:

1/30/2014 to 2/6/2014

30 jan 2014 to 6 feb 2014 

当一周结束时,它会发生变化:

2014 年 2 月 6 日至 2014 年 2 月 13 日

2014 年 2 月 6 日至 2014 年 2 月 13 日

任何帮助或示例代码将不胜感激。

【问题讨论】:

    标签: java android android-datepicker android-date


    【解决方案1】:

    试试这个,

    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()); 
    

    其实我不喜欢安卓日历(我更喜欢Joda-Time),但上面的解决方案应该适合你

    【讨论】:

    • 对不起,这和Android 有什么关系? =)
    • 我说的是代码中使用的日历实例,Calendar API 很混乱。
    • 好吧,你可以写你的答案来补充我的答案,向 OP 展示如何获得下周的时间为long =)
    • 好吧,我不知道setMaxDate(),但我们可以将任何日期设置为日历实例,并以毫秒为单位检索时间为long MiliTime=cal.getTimeInMillis()
    • 那就这样吧,兄弟! cal.getTimeInMillis() 的返回值被传递给 setMaxDate()。好样的! =)
    【解决方案2】:

    终于找到了解决办法,解决了我的问题:

    在创建时:

    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);
    

    在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;
    }
    

    【讨论】:

      【解决方案3】:

      在您的情况下,setMaxDate() 是您的朋友。文档说:

      设置此 DatePicker 支持的最大日期(以毫秒为单位) 自 1970 年 1 月 1 日 00:00:00 在 getDefault() 时区。

      所以,获取下周的时间为long 并使用该方法。

      看看这里Set Limit on the DatePickerDialog in Android?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-17
        • 2021-08-31
        • 1970-01-01
        • 2018-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多