当前位置: 首页 > 面试题库 >

Android日历:更改一周的开始日期

郝昊东
2023-03-14
问题内容

我有一个小问题,我正在开发一个应用程序,我需要将每周的开始日期从星期一更改为另一个(星期四,星期六)。在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());

使用上面的代码即时获取结果,但星期一为星期几。

注意:我无法在结果中添加日期,因为周索引随着开始时间的变化而变化


问题答案:

星期日到星期六的日历天的值是1-7。getFirstDayOfWeek根据使用,返回此值之一(通常是星期一或星期日)Locale。在电话的设置上Calendar.getInstance使用默认Locale分机设置,在您的情况下,将周一设置为一周的第一天。

一种解决方案是使用其他解决方案Locale

Calendar.getInstance(Locale.US).getFirstDayOfWeek()

返回1,这是的价值Calendar.SUNDAY

其他解决方案将使用所选的星期几值,例如

cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);

问题是,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

如果您不想使用Locale或需要其他日子作为一周的第一天,则最好自己计算一周的开始时间。



 类似资料:
  • 我有一个小问题,我正在开发一个应用程序,我需要将一周的开始日从星期一更改为另一个(星期四,星期六)。这在android中可能吗,我需要计算一周的开始和结束知道日期。(例如,一周从星期四开始) 注意:我只是android开发的初学者。这是我的代码SimpleDataFormat DateFormat=new SimpleDataFormat(“dd/MM”); 使用上面的代码,我得到了结果,但星期一

  • 我在本教程的帮助下制作了日历:http://droidwalk.blogspot.it/2012/11/android-calendar-sample.html ..但是这个日历从星期天开始,我想从星期一开始。。我试图改变价值观​​在函数中设置对象GregorianCalendar,但它不会给出所需的结果。本周从周一开始,但在某些月份,我们失去了第一周。我发现了一个类似的问题:从周一开始制作日历,

  • 用户可以像这样在手机中设置他们的自定义开始日期。再加上不同的文化,一周开始的日子也不同: 澳大利亚,英国:周日,周一。。。,星期六 中国:周一,周二。。。,星期日 这意味着在开发日历功能时,我们可能有许多不同的一周中的日子从(从左到右)开始我们的日历,以使用户体验最佳。 我们可以定制日历,以确定一周中的具体开始日期: 问题在于将我的自定义日历更新为用户的系统日历。 当我使用Calender(从用户

  • 我使用了以下库作为日历,但它显示的星期的第一天是星期一,我想以星期日开始一天。 https://github.com/applandeo/material-calendar-view 我修改了相应的代码,但它仍然显示日期,因此星期一是第一天。

  • 我需要一个Android日历视图像附上的照片。我已经尝试使用这个库https://github.com/alamkanak/android-week-view作为日历视图。这是一个固定的静态事件在日历添加仅。无法在此库日历视图中添加动态事件。有没有人可以推荐任何一个自定义库在Android。 日历视图库代码示例Android-Week-View: 我在这个图书馆所尝试的: 注: 我需要在此日历视图

  • 我正在寻找确切的开始和结束日期根据我们的桌面日历,如果我给周,年作为输入。但是上面的代码给出的输出是2009年1月27日星期日。我知道这是因为按照我们的说法,一周的第一天默认是星期天,但我需要按照桌面日历