什么是Android的相当于iPhone的NSCalendar?

时间:2011-07-13 00:15:16

标签: java iphone android

以下iPhone代码的Android等价物是什么?

NSCalendar *calender = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
int units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *components = [calender components:units fromDate:[NSDate date] toDate:destinationDate options:0];

我正在尝试进行日期倒计时,以连续的方式显示年数,月数,日数,小时数,分钟数和秒数,而不是显示整年的年,月,日,小时,分钟和秒。

我有这个,但我无法得到小时,分钟和秒。当我玩这些时间时,我会在几天内不停地工作,而不是几个小时。

        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = null;
        try {
            date = format.parse(myDate);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        long nat = Math.round(date.getTime() / 1000);
        long totaldifference = Math.abs(d1-d2);

        long date_diff = Math.round(totaldifference/(24*3600));
        //year
        double year2 = Math.floor(date_diff/365);
        date_diff-=year2*365;

        double month2 = Math.floor(date_diff/30.5);
        date_diff-=month2*30.5;

        long day2 = date_diff;

2 个答案:

答案 0 :(得分:0)

查看calendar的文档应该有所帮助。你可以单独获得年,月,日等所以应该很容易实现你的倒计时。它是一个基类,所以你应该能够扩展它来做你需要的。

答案 1 :(得分:0)

要获得Calendar,您可以这样做:

Calendar cal = Calendar.getInstance()

这样做会将其初始化为当前日期和时间。如果需要将文档设置为其他日期或时间,请查看文档。

要获取年,月,日等,您可以执行以下操作:

int year = cal.get(Calendar.YEAR)
int month = cal.get(Calendar.MONTH)
int day = cal.get(Calendar.DATE)

要对此进行“倒计时”,您可以添加想要倒计时的任何单位的负数:

cal.add(Calendar.SECOND, -1)