2014-01-31 177 views
1

过去两天我一直在这个问题上停滞不前。我的问题是:我如何显示从一周到另一周(周四到周四)的日期?例如:Android显示从一周到另一周的日期(星期四至星期四)

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日13日

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

回答

0

最后我得到了工作一个解决方案,解决我的问题:

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

的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

对你而言,setMaxDate()是你的朋友。该文件说:

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

因此,得到下周的时间为long并使用该方法。

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

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

其实我不喜欢Android的Google日历(我喜欢Joda-Time),但上述方案应该为你

+0

对不起,这是怎么涉及到'Android'? =) –

+0

我正在谈论代码中使用的日历实例,日历API非常混乱。 – dd619

+0

那么,你可以写下你的答案来补充我的,通过显示OP如何让下周的时间为'长'=) –

相关问题