import java.util.Calendar;public class Test
{
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
c.set(2003,9,6);
System.out.println(c.get(Calendar.DAY_OF_WEEK));
}
}获得2003年6月9号是星期几,这个地方JDK的API错了。
{
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
c.set(2003,9,6);
System.out.println(c.get(Calendar.DAY_OF_WEEK));
}
}获得2003年6月9号是星期几,这个地方JDK的API错了。
c.set(2003,9,6)设定的日期为2003年10月6日
{
Date date = new Date();
Calendar cal=Calendar.getInstance();
cal.setTime(date);
int posOfWeek=cal.get(Calendar.DAY_OF_WEEK);
posOfWeek--; //Calendar格式转化成普通格式 0星期天, 1 星期一...
return posOfWeek;
}
2、此时,算法转为计算某日与基准日之间的日差;
3、提供判断闰年的方法如下:
//判断iYear是不是闰年
private static boolean isLeapYear( int iYear )
{
return ( ! ( ( iYear % 4 ) == 0 ) && ( ( iYear % 100 ) == 0 ) )
|| ! ( ( iYear % 400 ) == 0 );
}
4、提供计算某年某月天数的方法:
private static int getMonthDays( int iYear, int iMonth )
{
switch ( iMonth )
{
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 :
return 31;
case 4 :
case 6 :
case 9 :
case 11 :
return 30;
case 2 :
return isLeapYear( iYear ) ? 29: 28;
}
return 0;
}
5、综合以上方法,应可算出1900年以后任意日期的星期数。
我也想知道当然,如果哪位大侠提供 JDK原程序就都清楚了 :)
java\util\Calendar.java
SimpleDateFormat formatter = new SimpleDateFormat("E");
String mDateTime=formatter.format(cal.getTime());
out.println(mDateTime);
SimpleDateFormat formatter4 = new SimpleDateFormat("E");
String mydate3=formatter4.format(mydate);
out.println(mydate3);
out.println("<br>");
计算星期有一种非常简单实用的办法,只要通过下面的两个式子,不管哪年的元旦是星星期几一下子就明朗了,将一年的第一天把握住了,还愁这一年?!
公式非常简单:只要知道公元的哪一年的数字,并将其用y来表示,将有如下公式:
f = (y - 1) * (1 + 1 / 4 - 1 / 100 + 1 / 400) + 1
k = f - Int(f / 7) * 7
k如果为0则表示星期日,为其他什么数值,将是星期几。
long f,k
long z=2003
f = (z - 1) * (1 + 1 / 4 - 1 / 100 + 1 / 400) + 1
k = f - Int(f / 7) * 7
k = 3
算z年的元旦是星期几?
那么
int f=(z-1) * 1.12425 + 1;
int k= f-int(f/7)*7;
k=0 星期日,依次类推,多谢各位!