Читайте также:
|
|
Данные типа дата/время приходится обрабатывать довольно часто, поэтому все современные языки программирования предлагают удобный механизм для работы с ними в одной из своих библиотек.
В Java для этих целей разработаны классы Date и Calendar, собранные в пакете java.util.
Класс Date хранит число миллисекунд, прошедших с 1 января 1970 года (во внутреннем поле, имеющем тип long). Конструктор без параметров этого класса создает объект, содержащий текущее время (по системным часам машины, на которой выполняется программа). Другой конструктор, с параметром типа long, создает объект Date на основе заданного числа.
Метод getTime() позволяет получить это число, а метод setTime(long newTime) — изменить.
Для отображения даты на экране ее внутреннее представление необходимо перевести в строку, более удобную для восприятия. Для этого обычно используется класс SimpleDateFormat (являющийся наследником абстрактного классаDateFormat), который надо импортировать из пакета java.text. Прежде всего необходимо создать объект этого класса, указав в качестве параметра конструктора строку, определяющую способ форматирования. Например:
SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy hh:mm");
Теперь следует вызвать метод format() созданного форматирующего объекта, передав ему в качестве параметра тот объект Date, который мы хотим представить в виде строки. Чтобы вывести на экран текущую дату, используем команду:
System.out.println(formatter.format(new Date()));
В момент написания этих строк программа вывела в консоль
23.09.2007 05:51
В строке "dd.MM.yyyy hh:mm" dd означает цифры дня, MM — цифры месяца, yyyy — цифры года, hh — часы и mm — минуты. Комбинация MMMM дала бы название месяца (в именительном падеже), а yy — только две последние цифры года. Названные составляющие могут следовать в любом порядке (причем, все они присутствовать не обязаны), а разделители между ними (в примере это точка, пробел и двоеточие) могут быть и другими.
Класс Calendar позволяет работать с датой на более высоком уровне, отдельно рассматривая составляющие даты (число, месяц, год и т.д.). Он является абстрактным, поэтому необходимо пользоваться одним из его наследников. Таковым является GregorianCalendar (описывающий грегорианский календарь, по которому мы живем).
Создать объект этого класса, содержащий текущую дату/время можно конструктором без параметров. Всего же у классаGregorianCalendar семь конструкторов, наиболее мощный из них принимает шесть параметров:
GregorianCalendar(int year, int month, int day, int hour, int minutes, int seconds)
Получить любую часть даты можно с помощью универсального метода get(int field). Целочисленный параметр fieldопределяет желаемую часть даты.
В классе Calendar определены константы, описывающие возможные варианты: ERA, YEAR, MONTH, WEEK_OF_YEAR, WEEK_OF_MONTH, DAY_OF_YEAR, DAY_OF_MONTH, DAY_OF_WEEK, HOUR_OF_DAY, MINUTE, SECOND, MILLISECONDи несколько других.
Например, узнаем, какой сегодня день года:
GregorianCalendar today = new GregorianCalendar(); int result = today.get(Calendar. DAY_OF_YEAR);System.out.println(result);
Любую часть даты можно изменить методом set(int field, int value).
Задание 6 (дополнительное*)
Спроектируйте и разработайте метод, определяющий, сколько времени прошло с заданной даты. С помощью этого методы выведите в консоль, сколько времи прошло с вашего дня рождения в удобном для восприятия виде, например: «Вам исполнилось 20 лет, 3 месяца, 18 дней, 4 часа, 5 минут и 10 секунд».
Дата добавления: 2015-09-11; просмотров: 97 | Поможем написать вашу работу | Нарушение авторских прав |