【发布时间】:2014-12-15 23:28:07
【问题描述】:
我定义了一个 Date 类和 Date 对象。我想编写一个 compareTo 方法来比较 Date 日期的年份。我想比较 d0 和 d1,然后比较 d1 和 d2、d2 和 d3、d3 和 d4。我想创建一个数组 list2,它有 1、0 或 -1。当我从 Date 类中调用它们时遇到问题。我很乐意得到任何帮助。
public class HW_ObjectArrays
{
public static void main( String[] args)
{
System.out.println( "Start of HW_ObjectArrays\n");
int i;
Date d0, d1, d2, d3, d4;
d0 = new Date(07,12,2014);
d1 = new Date(23,06,2013);
d2 = new Date(12,01,2012);
d3 = new Date(12,01,2012);
d4 = new Date(06,04,2011);
Date[] list = new Date[5];
list[0] = d0;
list[1] = d1;
list[2] = d2;
list[3] = d3;
list[4] = d4;
int[] list2 = new int[4];
System.out.println("d0 and d1 :" + compareTo(list2[0]));
System.out.println("d1 and d2 :" + list2[1]);
System.out.println("d2 and d3 :" + list2[2]);
System.out.println("d3 and d4 :" + list2[3]);
public class Date
{
public int getYear()
{
return year;
}
public int[] compareTo(Date d0, Date d1, Date d2, Date d3, Date d4)
{
int i, a0, a1, a2, a3, a4;
a0 = d0.getYear();
a1 = d1.getYear();
a2 = d2.getYear();
a3 = d3.getYear();
a4 = d4.getYear();
int[] list = new int[5];
list[0] = a0;
list[1] = a1;
list[2] = a2;
list[3] = a3;
list[4] = a4;
int[] list2 = new int[4];
for (i = 0; i < list2.length - 1; i++)
{
if (list[i] > list[i + 1])
{
list2[i] = 1;
}
if (list[i] == list[i + 1])
{
list2[i] = 0;
}
if (list[i] < list[i + 1])
{
list2[i] = -1;
}
}
return list2;
}
}
【问题讨论】:
-
如果您具体告诉我们您的问题是什么——您看到什么行为以及您期望什么,包括任何错误消息/堆栈跟踪,您更有可能获得帮助。
-
我想比较日期的年份。 list2 应该是 [1,1,0,1] 我想把它们放在 System.out.println's 中。
-
您应该小心创建 Date 对象的方式。您正在使用八进制常量。在
new Date(06,04,2011)中,常量06和04都是base-8。如果您尝试在 7 月之后创建日期,您会得到一些惊喜。