计算两天之间的天数_周刊:Android

时间:2011-11-09 09:56:34

标签: android

我有一个问题是要找出哪一天(在给定的清单中)是从今天起最近的一天。

例如

day_list is Mon, Tue, Fri, Sat
and today is Wed

现在如果我们在纸上计算天数,

Wed to Mon = 5 days
Wed to Tue = 6 days
Wed to Fri = 2 days
Wed to Sat = 3 days 

因此答案为Fri

但是在代码中,我该如何实现这个逻辑呢?还是有其他方法来优化它的过程(关于if_else)?

2 个答案:

答案 0 :(得分:2)

我的想法是在下面,但可能你应该改变一点以满足你的需要。

将您的星期数从0到6。

Sun = 0; Mon = 1; Tue = 2; etc.

如果您只有几天,请保留数字。例如,如果您只有MonTueFriSat,那么请将数字与日期相对应,即1,{{1 }},25

现在,如果你想知道6(有一个数字Wed)的那些日子之间的“距离”,你可以这样做:

3

顺便说一下,

distance = (theNumberOfYourDayInList - 3) mod 7是天数。

所以如果你想知道它们之间的距离:

7WedMondistance = (1 - 3) mod 7

5WedFridistance = (4 - 3) mod 7

1WedTuedistance = (2 - 3) mod 7

将这些逻辑变成代码是微不足道的,我认为你不应该遇到任何问题。

答案 1 :(得分:1)

算一下吧

int Count= days(Calendar.WEDNESDAY, Calendar.TUESDAY);

private int days(int Day1, int Day2) {
    int Days = 1;
    while (Day1 != Day2) {
        Day1 += 1;
        Days += 1;
        if (Day1 == Calendar.SATURDAY) Day1 = Calendar.SUNDAY;
    }
    return Days;
}