Android 如何获得约会的第一天和最后一天
我正在使用DatePickerDialog显示日历。我想访问所选日期一周的第一天和最后一天 这是我试过的Android 如何获得约会的第一天和最后一天,android,Android,我正在使用DatePickerDialog显示日历。我想访问所选日期一周的第一天和最后一天 这是我试过的 this.tv_date.setText( new StringBuilder() // Month is 0 based so add 1 .append(mDay).append("-") .append(monthName).append("-")
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代码中仔细检查你从数据采集器获得的值。