簡體   English   中英

Android Display的日期從一個星期到另一個星期(星期四至星期四)

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

最近兩天,我一直在這個問題上停留。 我的問題是:如何顯示一個星期到另一個星期(星期四至星期四)的日期? 例如:

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日

任何幫助或示例代碼將不勝感激。

嘗試這個,

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 Calendar(我更喜歡Joda-Time ),但是上述解決方案應該適合您

終於我找到了解決方案並解決了我的問題:

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

就您而言, setMaxDate()是您的朋友。 文檔說:

設置此DatePicker支持的最大日期(以毫秒為單位),此日期自1970年1月1日00:00:00在getDefault()時區開始。

因此,請盡可能延長下周的long並使用該方法。

看看這里在Android的DatePickerDialog上設置限制嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM