当前位置: 首页 > 知识库问答 >
问题:

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

微生嘉
2023-03-14

我有一个小问题,我正在开发一个应用程序,我需要将一周的开始日从星期一更改为另一个(星期四,星期六)。这在android中可能吗,我需要计算一周的开始和结束知道日期。(例如,一周从星期四开始)

注意:我只是android开发的初学者。这是我的代码SimpleDataFormat DateFormat=new SimpleDataFormat(“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());

使用上面的代码,我得到了结果,但星期一是一周之星。

注意:我不能将天添加到结果中,因为周指数会随着开始时间的变化而变化

共有3个答案

朱高丽
2023-03-14
    public int getWeekdayOfMonth(int year, int month){
    Calendar cal = Calendar.getInstance();
    cal.set(year, month-1, 1);
    dayOfWeek = cal.get(Calendar.DAY_OF_WEEK)-1;
    return dayOfWeek;
}

Workday=getWeekdayOfMonth();

int day = (weekday - firstweek) < 0 ? (7 - (firstweek - weekday)) : (weekday - firstweek);

“第一周”意味着你想要的开始日

然后你可以计算你应该展示的第一天。如果你有简单的方法,请告诉我们。thks

商燕七
2023-03-14
GregorianCalendar cal = new GregorianCalendar(yy, currentMonth, 0);

更改值0-从星期一开始的一天更改值1-从星期日开始的一天,依此类推。

希望这能有所帮助并奏效:)

莫英卓
2023-03-14

对于星期日和星期六,日历日的值为1-7getFirstDayOfWeek根据使用的Locale返回其中一个值(通常是周一或周日)<代码>日历。getInstance使用默认的语言环境取决于手机的设置,在您的情况下,周一是一周的第一天。

一种解决方案是使用其他语言环境

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

将返回1,这是Calendar的值。星期日

另一个解决方案是使用所选的星期日值,如

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

如果您不想使用语言环境,或者需要将其他日期作为一周的第一天,最好自己计算一周的开始时间。

 类似资料:
  • 我有一个小问题,我正在开发一个应用程序,我需要将一周的开始日从星期一更改为另一个(星期四,星期六)。这在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日星期日。我知道这是因为按照我们的说法,一周的第一天默认是星期天,但我需要按照桌面日历