求一面试题答案. 写一个函数:输入任意两个字符串,这两个字符串必须满足("YYYY-MM-DD")格式,返回这两个字符串为时间的相差天数.另注:不允许用任何日期函数,必须考虑闰年,大月,小月. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package squall;import java.util.StringTokenizer;public class DateDiff{ public static void main(String[] args) { MyDate op1 = new MyDate("2009-01-01"); MyDate op2 = new MyDate("2008-03-21"); System.out.println(op1.diffDays(op2)); }}class MyDate{ public MyDate(String str) { StringTokenizer tokenizer = new StringTokenizer(str, "-"); year = Integer.parseInt(tokenizer.nextToken()); month = Integer.parseInt(tokenizer.nextToken()); day = Integer.parseInt(tokenizer.nextToken()); } public long diffDays(MyDate other) { return this.diffBC() - other.diffBC(); } private long diffBC() { long res = 0; for (int i = 1; i < year; ++i) { if (i % 400 == 0 || i % 4 == 0 && i % 100 != 0) res += 366; else res += 365; } for (int i = 0; i < month -1; ++i) { res += dayinMonth[i]; if (i == 1 && (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)) ++res; } res += (day - 1); return res; } private static int[] dayinMonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; private int year; private int month; private int day;} 忘了jdk版本低的话long res = 0;->long res = 0L; 我出一道面试题,如何用c语言实现ping命令,别拿砖拍我。怕怕 public static int daysBetween(Date date1, Date date2) { final long ONE_DAY = 24 * 60 * 60 * 1000; return (int) Math.abs((date1.getTime() - date2.getTime()) / ONE_DAY); }这样多简单啊!,本就有个Date类,还得非写一个MyDate类去模拟这个Date类。这样的面试题真想不通面试官真么考虑的。 java Clone 对象 迷惑 applet问题 试问一个关于Actionlistener的问题,我想让一个action执行函数体十次 关于执行java的批处理 内隐类的方法在外部类可以调用吗?(在线等) transient native volatile 这三个关键含义是什么呢? 分享个领取传智光盘链接 请教一个关于多线程的问题. 在JBuilder中 VM parameters栏该怎么填 谁给我一些计数器的图片? 写一个算法找出出现次数超过两次的人 java生成100以内的整数
{
public static void main(String[] args)
{
MyDate op1 = new MyDate("2009-01-01");
MyDate op2 = new MyDate("2008-03-21");
System.out.println(op1.diffDays(op2));
}
}class MyDate
{
public MyDate(String str)
{
StringTokenizer tokenizer = new StringTokenizer(str, "-");
year = Integer.parseInt(tokenizer.nextToken());
month = Integer.parseInt(tokenizer.nextToken());
day = Integer.parseInt(tokenizer.nextToken());
} public long diffDays(MyDate other)
{
return this.diffBC() - other.diffBC();
} private long diffBC()
{
long res = 0;
for (int i = 1; i < year; ++i)
{
if (i % 400 == 0 || i % 4 == 0 && i % 100 != 0)
res += 366;
else
res += 365;
}
for (int i = 0; i < month -1; ++i)
{
res += dayinMonth[i];
if (i == 1 && (year % 400 == 0 || year % 4 == 0 && year % 100 != 0))
++res;
}
res += (day - 1);
return res; } private static int[] dayinMonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31,
30, 31 }; private int year; private int month; private int day;
}
long res = 0;
->
long res = 0L;
final long ONE_DAY = 24 * 60 * 60 * 1000;
return (int) Math.abs((date1.getTime() - date2.getTime()) / ONE_DAY);
}这样多简单啊!,本就有个Date类,还得非写一个MyDate类去模拟这个Date类。这样的面试题真想不通面试官真么考虑的。