Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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计算周数,2月第一周为第一周?_Java_Calendar_Week Number_Java.util.date - Fatal编程技术网

Java计算周数,2月第一周为第一周?

Java计算周数,2月第一周为第一周?,java,calendar,week-number,java.util.date,Java,Calendar,Week Number,Java.util.date,我试图计算周数,其中周数的开始必须从二月第一周开始。例如2015年2月2日至2月8日周数必须为1。请帮助我,因为我是这个环境的新手,我能够计算从一月第一周开始的周数 为了添加更多的上下文,我尝试在java中实现一个广播日历,第一周从2月开始。所以只需使用 Calendar c = Calendar.getInstance(); DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); c.setTime( sdf.parse("2/2/2015")

我试图计算周数,其中周数的开始必须从二月第一周开始。例如2015年2月2日至2月8日周数必须为1。请帮助我,因为我是这个环境的新手,我能够计算从一月第一周开始的周数

为了添加更多的上下文,我尝试在java中实现一个广播日历,第一周从2月开始。

所以只需使用

Calendar c = Calendar.getInstance();
DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
c.setTime( sdf.parse("2/2/2015"));
out.println( c.get( Calendar.WEEK_OF_YEAR ));
获取2月2日的周数,并用1月1日之间的周数进行抵消。所以

c.get( Calendar.WEEK_OF_YEAR )) - 4; 
或者,不管还有多少个星期

java.time 该类表示一个仅限日期的值,不包含一天中的时间和时区

将所需日期指定为锚定日期,即我们计算周数的日期。您需要序号周数,因此添加一以避免周数为零

提供了计算运行时间的方法

LocalDate anchor = LocalDate.of( 2015 , Month.FEBRUARY , 2 );

LocalDate feb5 = LocalDate.of( 2015 , Month.FEBRUARY , 5 );
LocalDate feb8 = LocalDate.of( 2015 , Month.FEBRUARY , 8 );
LocalDate feb9 = LocalDate.of( 2015 , Month.FEBRUARY , 9 );

System.out.println( feb5 + " is in week # " + ( ChronoUnit.WEEKS.between( anchor , feb5 ) + 1 ) );
System.out.println( feb8 + " is in week # " + ( ChronoUnit.WEEKS.between( anchor , feb8 ) + 1 ) );
System.out.println( feb9 + " is in week # " + ( ChronoUnit.WEEKS.between( anchor , feb9 ) + 1 ) );
看这个

2015-02-05在第1周

2015-02-08在第1周

2015-02-09第二周


关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

从哪里获得java.time类

  • ,及以后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 该项目专门为Android采用了ThreeTen Backport(如上所述)

该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可能会在这里找到一些有用的类,如、、和。

如果您能更清楚地了解您要查找的内容,这将非常有用。我不明白你的例子。那么9-15是第2周吗,等等。?为什么你说必须从二月的第一周开始,然后切换到一月?是哪一个?是的,9-15一定是第二周。我正在使用Calendar.WEEK\u OF_YEAR查找当前的周数