刚学编程,望大家指点指点~
public int Week(int year,int month,int day)
{
int[] m_day = {31,28,31,30,31,30,31,31,30,31,30,31}; int y=0;
int m=0;
int d=0;
int r=0;

y = (year-1) * 365;// 计算公元1年1月1日到year年1月1日共有多少日 for(int i = 0;i< month -1;i++)//计算1月1日到month月1日共有多少日
{
m =m + m_day[i];

}

d = day;//...... for(int i = 1;i<year;i++)//计算公元1年到year年共有多少个闰年
{
if(isLeapYear(i))
{
r++;
}
} return (y+m+d+r)%7;
}
public boolean isLeapYear(int year)//判断是不是闰年
{
if(year%400==0||(year%4==0&&year%100!=0 ))
{
return true;
}
else
{
return false;
}
}

解决方案 »

  1.   

    你直接用Calendar和GregorianCalendar就可以了,像你这么写不符合java国际化的标准,你这只是计算中国的星期几,国外计算星期的方法和中国部太一样
      

  2.   

    1.问题:求出1900-01-01到2009-12-17一共有多少天?
    代码:
        long between = 0;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date end = null;
        Date begin = null;
        try {
            begin = sdf.parse("1900-01-01");
            end = sdf.parse("2009-12-17");
        } catch (ParseException e) {
         e.printStackTrace();
        }
        between = (end.getTime() - begin.getTime()) / (1000 * 60 * 60 * 24);
        System.out.println(between);
    解析:使用系统自带的类解决问题会很省代码
      

  3.   

    OOP其中的一个优点 就是代码重用。所以。有的话 就直接用系统的好了
    而且 记得公元0年开始历史上好像有几天被去掉了还是怎么的(记不起来了,反正就是去掉了好多天)所以自己写的也不一定准确 楼主可以参考下下面地址
    http://blog.sina.com.cn/s/blog_4b1843ae0100fex0.html
      

  4.   

    其实,我也知道java提供很多相关的类。
    但,我想试试自己做,从而提高自己的编码水平。
    6楼提供的文章很好~谢谢。。
      

  5.   

    了解下日期的几个函数,data,Calender,SimpleDataFormat,就像4L的