0

我真的被某个问题困住了,我希望有人可以帮助我理解问题并找到解决方案。我在网上看了很多,但看不到答案,除非它一直盯着我看:-/

基本上,我正在创建一个非常基本的电视指南应用程序。它解析来自具有天数偏移量的 RSS 提要的数据(昨天是 -1。今天是 0,明天是 1,等等),我正在尝试实现一个 DatePicker,它允许用户查看特定频道上的内容他们选择昨天、今天、明天等。但如果他们选择了超出范围的日期(目前是提前一周),则会显示一条简单的 Toast 消息。

我想我的问题是,首先,我如何使用 IF ELSE 来解析用户想要的那一天的特定频道数据或显示错误 Toast 消息,以及,我如何去转换用户想要的日期与今天的实际日期相比是否已放入整数?如果他们选择昨天的日期,它将转到 URL“ http://example.com/-1/channel ”,如果他们选择明天的日期,它将转到 URL“ http://example.com/1/channel ”等等等

如果有人需要查看代码,则可以使用代码,但我认为如果有人愿意解释逻辑,我想看看我是否可以自己来回答......

非常感谢各位!!

4

2 回答 2

2

您应该使用 aDatePicker来允许用户选择何时。

Android 中的时间存储在long(不是int)上。时间可以很容易地在(总是毫秒)和一个对象long之间来回转换。longDate

Date对象为您提供了各种工具来比较前后,查看月份、分钟、小时等。

当前时间由以下因素确定:

long nowMs = System.currentTimeMillis();
int nowSec = (int)(nowMs / 1000);

还有一个非常重要的Calendar对象。这允许您解析由 http 函数传入和传出的各种日期的文本日期格式。

例如:

Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss Z");
String text = sdf.format(cal.getTime();

您必须将所有这些工具与一个DatePicker示例(例如此处的创建日期选择器)放在一起,以完成您的电视指南应用程序。

参考

于 2013-03-27T21:18:07.647 回答
0

编辑:检查大卫的答案更好。

首先用今天的日期过滤选择的日期。您可以通过 date.isbefore(date) 或 date.isafter(date) 进行比较,这些布尔值会让您知道日期是过去还是未来还是现在。然后进一步计算中间的天数,您可以使用 switch 语句创建一个方法,该方法基本上将所选日期和当前日期转换为毫秒(Date.getTimeinmiliseconds)

如果日期是过去的,则以毫秒为单位的当前时间和以毫秒为单位的过去日期之差。如果日期是未来,则相反。取差异并将其转换为具有适当符号(负/正)的天数差异。

请参考链接以获得更好的编码示例

于 2013-03-27T21:09:05.320 回答