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

2 に答える 2

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);
于 2013-03-01T06:44:14.937 に答える
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);
}

今日を割り当てる代わりに、正確な形式で他の日を割り当てることができます

于 2013-03-01T06:41:04.233 に答える