【问题标题】:Use Calendar API Java使用日历 API Java
【发布时间】:2013-08-15 04:38:14
【问题描述】:

我有一个 TimeOfDay 对象的目标。我需要帮助编写 getTimeForDay 方法。稍后将提供代码。我想编写此方法,以便给定一个日历对象,它返回一个具有相同年、月和日的新日历对象,但与此实例关联的时间。 代码是:

import java.util.Calendar;

public class TimeOfDayImpl implements TimeOfDay,Cloneable,Comparable<TimeOfDay> {

    private byte minute;
    private byte hour;
    public TimeOfDayImpl(byte min,byte hr) {
        // TODO Auto-generated constructor stub
    }

    @Override
    public int compareTo(TimeOfDay o) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public byte hour() {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public byte minute() {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public Calendar getTimeForDay(Calendar referenceDay) {
        referenceDay.getInstance();
        referenceDay.
        // TODO Auto-generated method stub
        return null;
    }

    public TimeOfDay clone() throws CloneNotSupportedException 
    {
        return (TimeOfDay) super.clone();
    }
}

【问题讨论】:

  • 让我把这个记在心里。您想返回Calendar 的新实例,其yearmonthdayreferenceDay 相同,但谁的时间是“现在”?
  • JavaDocs 的哪一部分无法帮助您??
  • 我是Calendar API 的初学者。我相信一段时间后事情会变得有意义,但我必须尽快完成。我不想让你告诉我代码,如果可以的话只是指导我如何去做,我至少会走上正轨。提前谢谢

标签: java api calendar


【解决方案1】:

您应该首先拨打Java Docs。一点点努力就会有很长的路要走;)。如果您已经尝试过查看它们,请确保说明您在找到答案时遇到了什么问题,因为,是的,它们有时会非常令人困惑:P

public Calendar getTimeForDay(Calendar referenceDay) {
    // Create a new Calendar, which should equal "NOW"
    Calendar timeOfDay = Calendar.getInstance();
    // Transfer the year, month and date values from our reference calendar
    // to our "NOW" calendar...
    // Include our hour and minute values, not that I'm zeroing out the seconds
    timeOfDay.set(
            referenceDay.get(Calendar.YEAR), 
            referenceDay.get(Calendar.MONTH), 
            referenceDay.get(Calendar.DATE),
            (int)hour(),
            (int)minute(),
            0);
    // Return the result
    return timeOfDay;
}

【讨论】:

  • 谢谢,但你能向我解释一下你是如何处理分秒问题的吗?
  • 我也有一个困惑。在代码上面,我有一个方法public byte hour()。你认为这是getter和setter方法吗?
  • 1- Calendar 正在照顾自己的时间。 Calendar 的新实例与创建新的Date 对象相同,它们会自动同步到当前日期和时间。所以返回的值将是当前时间(以毫秒为单位有一些微小的差异;))但与referenceDayyearmonthdate...
  • 太棒了!感谢并感谢您向我介绍 Java 文档。它帮助了 :)
  • 2- 我会说您的hour 方法是一个getter,因为它不需要参数来更改值...我是否想用这些值播种新的Calendar
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-05
  • 2018-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多