2013-08-15 3 views
-1

У меня есть цель для объектов TimeOfDay. Мне нужна помощь при написании метода getTimeForDay. Код будет предоставлен позже. Я хочу написать этот метод таким образом, чтобы данный объект Calendar возвращал новый объект Calendar с идентичным годом , месяц и день, но со временем, связанным с этим экземпляром. Кодекс:Использование API календаря Java

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(); 
    } 
} 
+0

Позвольте мне получить это в моей голове. Вы хотите вернуть новый экземпляр «Календарь», чьи «год», «месяц» и «день» совпадают с «referenceDay», но чье время будет «сейчас»? – MadProgrammer

+0

Да, это правильно –

+0

И какая часть [JavaDocs] (http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html) не в состоянии вам помочь ?? – MadProgrammer

ответ

0

Вы должны сделать 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; 
} 
+0

спасибо, но можете ли вы объяснить мне, как вы заботитесь о минутной и второй проблеме? –

+0

У меня также есть одна путаница. В коде есть метод public byte hour(). Как вы думаете, это метод getter и setter? –

+0

1- «Календарь» заботится о своем времени. Новый экземпляр «Календарь» совпадает с созданием нового объекта «Дата», они автоматически синхронизируются с текущей датой и временем. Таким образом, возвращаемое значение будет текущим временем (с незначительной разницей в миллисекундах;)), но с «годом», «месяцем», «датой» 'referenceDay' ... – MadProgrammer

Смежные вопросы