Mou*_*maa 8 java android calendar
我有一点问题,我正在开发一个应用程序,我需要将一周的开始日从星期一改为另一个星期四(星期六,星期六).这是可能的android,我需要计算一周的开始和知道日期的结束.(本周开始以星期四为例)
注意:我只是android开发的初学者.这是我的代码SimpleDateFormat dateformate = new SimpleDateFormat("dd/MM");
// get today and clear time of day
Calendar cal = Calendar.getInstance();
// get start of this week in milliseconds
cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
cal.add(Calendar.DAY_OF_YEAR, 7*(WeekIndex-1));
result = dateformate.format(cal.getTime());
cal.add(Calendar.DAY_OF_YEAR, 6 );
result=result+" - " + dateformate.format(cal.getTime());
Run Code Online (Sandbox Code Playgroud)
使用上面的代码我得到的结果,但星期一作为星的星.
注意:我无法在结果中添加日期,因为周指数随着其开始的变化而变化
Kog*_*ger 22
星期日至星期六的日历日值为1-7.getFirstDayOfWeek根据使用情况,返回其中一个值(通常是星期一或星期日)Locale.Calendar.getInstance使用默认Locale取决于手机的设置,在您的情况下,星期一作为一周的第一天.
一种解决方案是使用其他Locale:
Calendar.getInstance(Locale.US).getFirstDayOfWeek()
Run Code Online (Sandbox Code Playgroud)
会回来1,这是价值Calendar.SUNDAY
其他解决方案是使用选择的星期几值
cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
Run Code Online (Sandbox Code Playgroud)
问题是,Calendar正在使用其内部第一天的周价值set.例:
Calendar mondayFirst = Calendar.getInstance(Locale.GERMANY); //Locale that has Monday as first day of week
mondayFirst.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
log(DateUtils.formatDateTime(context, mondayFirst.getTimeInMillis(), 0));
//prints "May 19" when runned on May 13
Calendar sundayFirst = Calendar.getInstance(Locale.US); //Locale that has Sunday as first day of week
sundayFirst.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
log(DateUtils.formatDateTime(context, sundayFirst.getTimeInMillis(), 0));
//prints "May 12" when runned on May 13
Run Code Online (Sandbox Code Playgroud)
如果您不想使用Locale或者您需要在一周的第一天使用其他日期,则最好自己计算一周的开始时间.
| 归档时间: |
|
| 查看次数: |
19603 次 |
| 最近记录: |