Android 如何获得约会的第一天和最后一天

Android 如何获得约会的第一天和最后一天,android,Android,我正在使用DatePickerDialog显示日历。我想访问所选日期一周的第一天和最后一天 这是我试过的 this.tv_date.setText( new StringBuilder() // Month is 0 based so add 1 .append(mDay).append("-") .append(monthName).append("-")

我正在使用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”。 请帮帮我


谢谢

下面是一个计算每周第一天的示例

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

您可以使用精确的格式指定任何其他日期,而不是指定今天,这里是一个计算每周第一天的示例

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);
}
您可以使用精确的格式(“+str”)指定任何其他日期,而不是指定今天-是错误的。您需要将
Date
对象传递给它,或者将其更改为
sdf.parse(str)
从中获取
日期
对象

编辑:-要获取一周的第一天,请执行以下操作

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);
sdf.format(“+str”)-是错误的。您需要将
Date
对象传递给它,或者将其更改为
sdf.parse(str)
从中获取
日期
对象

编辑:-要获取一周的第一天,请执行以下操作

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

但我猜DateTime类不在android Library中,但我猜DateTime类不在android Library中,谢谢!但是吐司每次都给我显示1,即使我选择了其他日期。如何获得一周的第一天。是的,它在当前(三月)月份工作正常,但在上个月和下个月显示错误的值。它适用于所有情况。我在发布前测试了它。刚才再次验证了
13-02-2013
,得到了
10
的输出。我不知道为什么我仍然面临这个问题。我也在diff avd 2.2上测试了它。目前我正在3.2上运行这个。尽管如此,我还是会接受你的回答:(试着把它作为一个独立的java程序运行,并把记录器放在任何需要的地方。看看它显示了什么。如果它在那里工作正常,请在android代码中仔细检查你从数据采集器中获得的值。谢谢!但是Toast每次都显示1,即使我选择了其他日期。如何获得一周的第一天。是的,对于c来说它工作正常(三月)但是上个月和下个月它显示了错误的值。它适用于所有情况。我在发布之前对它进行了测试。刚才再次验证了
13-02-2013
,得到的输出为
10
。我不知道为什么我仍然面临这个问题。我也在diff avd 2.2上对它进行了测试。目前我正在3.2上运行它。尽管如此,我还是去了nna接受你的回答:(试着把它作为一个独立的java程序运行,并把记录器放在需要的地方。看看它显示了什么。如果它在那里工作正常,请在android代码中仔细检查你从数据采集器获得的值。