Android - 中国十二生肖应用程序 - 如何攻击这个

时间:2012-02-15 20:48:33

标签: java android for-loop arraylist datepicker

我正在尝试创建一个Android应用来确定用户的中国十二生肖,按照此处的图表进行操作:http://en.wikipedia.org/wiki/Chinese_zodiac#Chinese_calendar

我在DatePicker小部件中收到用户的输入,该小部件为每个月,日和年提供一个整数。我创建了一个对象,让我们称之为ZOD,它有一个日,月和年的整数变量。

首先,我想解释一下我想到的第一种方法。我想我将拥有一个包含所有日期的ZOD类的ArrayList。例如,现货0将是“1924年2月5日”(2,5,1924),现货1将是“1925年1月23日”(1,23,1925)等......

让我们假设用户的输入是一个名为“input”的ZOD对象,并输入了它们的值。我以为我可以用for循环遍历arrayList(int i = 0;等等),首先我会比较年份

if(input.year >= ZOD(i).year  &&  input.year <= ZOD(i+1).year)
{

}

基本上,我认为这会给我一年的正确位置。我可以继续这种模式,还有两个if语句,一个月份,一个月份,并希望正确匹配?编辑:只需输入这个并查看我正在制作的笔记,我可以告诉这个方法不起作用。对于所有黄道带日期,月份为1月或2月。

我没有任何整体问题要问,我希望我的帖子总结了我正在寻找和尝试做的事情。我只需要建议或建议。

1 个答案:

答案 0 :(得分:1)

将日期转换为整数天或者只是成对的java.util.Date对象可能要简单得多,而不是尝试创建自己的日期表示。

然后,您可以将输入日与这些范围进行比较,并与开始和结束进行比较,直至找到匹配项。您可以存储显式范围(数字/日期对),也可以将开始值和结束值存储在两个相同长度的并行数组中。

(也可能使用二分搜索或类似方法来加快速度,但不太可能值得付出努力)。

我在这里假设没有一个简单的公式来确定日历,因此需要进行查找。如果有一些构建日历的公式,那么你可以实现它。