刚学编程,望大家指点指点~
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;
}
}
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;
}
}
代码:
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);
解析:使用系统自带的类解决问题会很省代码
而且 记得公元0年开始历史上好像有几天被去掉了还是怎么的(记不起来了,反正就是去掉了好多天)所以自己写的也不一定准确 楼主可以参考下下面地址
http://blog.sina.com.cn/s/blog_4b1843ae0100fex0.html
但,我想试试自己做,从而提高自己的编码水平。
6楼提供的文章很好~谢谢。。