2014-01-31 180 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如何讓下週的時間爲'長'=) –

相關問題