Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java日历使用Calendar.DAY\u OF_WEEK获取特定日期的第一个和最后一个日期_Java_Calendar - Fatal编程技术网

Java日历使用Calendar.DAY\u OF_WEEK获取特定日期的第一个和最后一个日期

Java日历使用Calendar.DAY\u OF_WEEK获取特定日期的第一个和最后一个日期,java,calendar,Java,Calendar,在我的应用程序中,有一段代码有时会突然工作,它是关于通过calendar.DAY\u OF_week使用java calendar对象获得一周间隔。 检查的代码为星期一作为一周的开始,星期天作为一周的结束,如下所示: fromCal.set(Calendar.DAY\u OF_WEEK,Calendar.MONDAY); toCal.set(Calendar.DAY\u OF_WEEK,Calendar.SUNDAY); toCal设置为最后一个星期日,而不是即将到来的星期日。 除了这种硬编码之

在我的应用程序中,有一段代码有时会突然工作,它是关于通过calendar.DAY\u OF_week使用java calendar对象获得一周间隔。 检查的代码为星期一作为一周的开始,星期天作为一周的结束,如下所示: fromCal.set(Calendar.DAY\u OF_WEEK,Calendar.MONDAY); toCal.set(Calendar.DAY\u OF_WEEK,Calendar.SUNDAY); toCal设置为最后一个星期日,而不是即将到来的星期日。 除了这种硬编码之外,还有其他的方法吗

提前告知帮助

谢谢


Vaibhav

我想你必须将一周的开始时间设置为周一,否则上周日就是一周的周日

setFirstDayOfWeek

public void设置星期一的第一天(int值)


我想你必须把一周的开始时间设置为周一,否则上周日就是一周的周日

setFirstDayOfWeek

public void设置星期一的第一天(int值)


问题在现场。在英语(美国)中,星期天是一周的第一天。 检查此代码:

Calendar cal = Calendar.getInstance(Locale.ENGLISH);
    cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
    System.out.println("FirstDayOfWeek="+cal.getFirstDayOfWeek());
    System.out.println(cal.getTime().toString());
    cal = Calendar.getInstance(Locale.FRANCE);
    System.out.println("FirstDayOfWeek="+cal.getFirstDayOfWeek());
    cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
    System.out.println(cal.getTime().toString());

问题在现场。在英语(美国)中,星期天是一周的第一天。 检查此代码:

Calendar cal = Calendar.getInstance(Locale.ENGLISH);
    cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
    System.out.println("FirstDayOfWeek="+cal.getFirstDayOfWeek());
    System.out.println(cal.getTime().toString());
    cal = Calendar.getInstance(Locale.FRANCE);
    System.out.println("FirstDayOfWeek="+cal.getFirstDayOfWeek());
    cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
    System.out.println(cal.getTime().toString());

在这里要非常清楚你想要的行为。首先是一个日历对象,其“现在”是一周中的某一天,可能是“今天”。您可以访问呼叫集(每周的第天,…)。如果日历上的今天是星期二,你想要什么效果?星期天?星期一

正如在其他答案中所观察到的,所发生的事情取决于日历对一周的第一天的看法。因此,首先将其设置为您选择的值。然后(根据本周的星期日和星期一,这可能不是你想要的-如果今天是星期日,你到底需要什么?-一些系统实际上可能正在“思考”下周


就我个人而言,根据一些业务规则,我可能会得到我的星期一,然后再加上6天来得到星期天。

请在这里非常清楚您想要的行为。您可以从一个日历对象开始,该对象的“现在”是一周中的某一天,可能是“今天”。您可以调用集合(周中的某一天,…).如果日历上的今天是星期二?星期天?星期一,你希望有什么效果

正如在其他答案中所观察到的,所发生的事情取决于日历对一周的第一天是什么的看法。因此,首先将其设置为您选择的值。然后(根据当前一周中的星期日和星期一,这可能不是您想要的-如果今天是星期日,您到底需要什么?-一些系统实际上可能是“思考”下周

就我个人而言,我可能会根据一些业务规则获得星期一,然后通过添加6天来获得星期日。

set(DAY_OF u WEEK)始终在当前周(WEEK_OF u YEAR)内调整set(DAY_OF u WEEK)始终在当前周(WEEK_OF u YEAR)内调整