Date: Tue, 30 May 2006 13:17:40 +0200 From: Heiko Weber <java@wecos.de> To: Achilleus Mantzios <achill@matrix.gatewaynet.com> Cc: freebsd-java@freebsd.org Subject: Re: Calendar Question - maybe bug ? Message-ID: <200605301317.40658.java@wecos.de> In-Reply-To: <Pine.LNX.4.44.0605301303350.17568-100000@matrix.gatewaynet.com> References: <Pine.LNX.4.44.0605301303350.17568-100000@matrix.gatewaynet.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Am Dienstag, 30. Mai 2006 12:10 schrieb Achilleus Mantzios: > O Heiko Weber =DD=E3=F1=E1=F8=E5 =F3=F4=E9=F2 May 30, 2006 : > > Am Dienstag, 30. Mai 2006 08:19 schrieb Panagiotis Astithas: > > > Heiko Weber wrote: > > > > Hi ! > > > > > > > > I've a problem with GregorianCalendar, which returns different weeks > > > > (in year) on FreeBSD 6.1, java version is > > > > > > > > # java -version > > > > Java HotSpot(TM) Server VM (build 1.5.0-p2-heiko_03_jan_2006_23_51, > > > > mixed mode) > > > > > > > > Test program (A.java): > > > > > > > > import java.util.Calendar; > > > > import java.util.GregorianCalendar; > > > > > > > > public class A { > > > > public static int weeksInYear(int year) { > > > > Calendar cal =3D GregorianCalendar.getInstance(); > > > > > > > > cal.set(year, 11, 31); > > > > > > > > return cal.get(Calendar.WEEK_OF_YEAR) =3D=3D 53 ? 5= 3 : > > > > 52; } > > > > > > > > public static void main(String args[]) { > > > > for (int i =3D 1990; i <=3D 2006; i++) > > > > System.out.println("Weeks in Year " + i + "= =3D > > > > " + weeksInYear(i)); > > > > } > > > > } > > > > > > > > Output on a Linux or Windows JRE is: > > > > > > > > Weeks in Year 1990 =3D 52 > > > > Weeks in Year 1991 =3D 52 > > > > Weeks in Year 1992 =3D 53 > > > > Weeks in Year 1993 =3D 52 > > > > Weeks in Year 1994 =3D 52 > > > > Weeks in Year 1995 =3D 52 > > > > Weeks in Year 1996 =3D 52 > > > > Weeks in Year 1997 =3D 52 > > > > Weeks in Year 1998 =3D 53 > > > > Weeks in Year 1999 =3D 52 > > > > Weeks in Year 2000 =3D 52 > > > > Weeks in Year 2001 =3D 52 > > > > Weeks in Year 2002 =3D 52 > > > > Weeks in Year 2003 =3D 52 > > > > Weeks in Year 2004 =3D 53 > > > > Weeks in Year 2005 =3D 52 > > > > Weeks in Year 2006 =3D 52 > > > > > > > > Output on FreeBSD is: > > > > > > > > Weeks in Year 1990 =3D 52 > > > > Weeks in Year 1991 =3D 52 > > > > Weeks in Year 1992 =3D 52 > > > > Weeks in Year 1993 =3D 52 > > > > Weeks in Year 1994 =3D 53 > > > > Weeks in Year 1995 =3D 52 > > > > Weeks in Year 1996 =3D 52 > > > > Weeks in Year 1997 =3D 52 > > > > Weeks in Year 1998 =3D 52 > > > > Weeks in Year 1999 =3D 52 > > > > Weeks in Year 2000 =3D 52 > > > > Weeks in Year 2001 =3D 52 > > > > Weeks in Year 2002 =3D 52 > > > > Weeks in Year 2003 =3D 52 > > > > Weeks in Year 2004 =3D 52 > > > > Weeks in Year 2005 =3D 53 > > > > Weeks in Year 2006 =3D 52 > > > > > > > > Is this my fault or would it help to update the FreeBSD JRE ? Or is > > > > the java-Calendar-System build up on some local (changeable) settin= gs > > > > ? > > > > > > > > Thanks for any help or hint. > > > > > > I can't replicate this here on either diablo-jdk15 or jdk15 patchset 2 > > > (as yours). Is your systems time/timezone/etc. correct? > > > > Hm, /etc/localtime has been installed last year in september - from > > installation of FreeBSD 6.0. If I remember correct I used sysinstall and > > answered "cmos time =3D=3D local time". > > > > # date > > Tue May 30 09:48:36 CEST 2006 > > > > Is this ok for germany ? > > I think yes, it means Central European Time (CET) with saylight savings > (S). > > Applying > --- A.java.old Tue May 30 12:57:28 2006 > +++ A.java Tue May 30 12:57:37 2006 > @@ -11,6 +11,7 @@ > } > > public static void main(String args[]) { > + java.util.TimeZone.setDefault(null); > for (int i =3D 1990; i <=3D 2006; i++) > System.out.println("Weeks in Year " + i + " =3D= " > + weeksInYear(i)); > } > > Should give you a hint of whether the problem is TZ related. > > P.S. > Also with 1.4.2 I get the first result set. Hi Achilleus, the above "patch" makes no difference on my system. I compared /etc/localtime with the files in /usr/share/zoneinfo, it=20 is /usr/shared/zoneinfo/Europe/Berlin. Heiko
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200605301317.40658.java>