2013-03-01 139 views
0

我正在使用DatePickerDialog顯示日曆。我想訪問所選日期的第一天和最後一天。如何獲取日期的第一天和最後一天

這是我曾嘗試

 this.tv_date.setText(new StringBuilder() 
     // Month is 0 based so add 1 
        .append(mDay).append("-") 
        .append(monthName).append("-") 
        .append(mYear).append("")); 
     tv_date.setHighlightColor(Color.CYAN); 

     String str=mDay+"-"+mMonth+"-"+mYear; 

     SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy"); 
     sdf.format(""+str); //here I am getting exception 

     Calendar cal=Calendar.getInstance(); 

     int s= cal.getFirstDayOfWeek(); 

     Toast.makeText(getApplicationContext(), "first day of the week : "+s, 1).show(); 

但我正在逐漸 「IllegalArguementException」。 請幫我

感謝

回答

4

sdf.format(""+str);的 - 是錯誤的。您需要將Date對象傳遞給它,否則,將其更改爲sdf.parse(str);以從中獲取Date對象。

編輯: -要獲得每週的第一天,請執行此操作。

String str=mDay+"-"+mMonth+"-"+mYear; 
SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy"); 
Date myDate = new Date(); 
try{ 
    myDate = sdf.parse(str); 
}catch(ParseException pe){ 
    // Do Something 
} 
Calendar cal = Calendar.getInstance(); 
cal.setTime(myDate); 
cal.set(Calendar.DAY_OF_WEEK, 1); 
int s = cal.get(Calendar.DATE); 
+0

謝謝!但Toast每次都會顯示1,即使我選擇了其他日期。如何獲得一週的第一天。 – 2013-03-01 07:15:42

+0

是的它目前(三月)的月份工作正常,但在上個月和下個月它顯示錯誤的值。 – 2013-03-01 08:00:31

+0

其適用於所有情況。我在發佈前測試過它。剛剛再次驗證了'13-02-2013'並得到了輸出爲'10'。 – SudoRahul 2013-03-01 08:04:41

0

這裏是每週計算的第一天的一個例子。

private void firstDayOfThisWeek(){ 
DateTime today = DateTime.today(TimeZone.getDefault()); 
DateTime firstDayThisWeek = today; //start value 
int todaysWeekday = today.getWeekDay(); 
int SUNDAY = 1; 
if(todaysWeekday > SUNDAY){ 
    int numDaysFromSunday = todaysWeekday - SUNDAY; 
    firstDayThisWeek = today.minusDays(numDaysFromSunday); 
} 
System.out.println("The first day of this week is : " + firstDayThisWeek); 
} 

不是指定今天你可以在任何一天使用指定具體格式

+0

但我猜,DateTime類不在android庫 – 2013-03-01 07:09:29

相關問題