Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Дополнительный материал. Работа с датой и временем

Читайте также:
  1. I. ЧТО ЕСТЬ ДИПЛОМНАЯ РАБОТА И ЗАЧЕМ ОНА
  2. I. ЧТО ЕСТЬ ДИПЛОМНАЯ РАБОТА И ЗАЧЕМ ОНА
  3. I. ЧТО ЕСТЬ ДИПЛОМНАЯ РАБОТА И ЗАЧЕМ ОНА
  4. I.3. Чем дипломная работа может пригодиться после университета
  5. II. САМОСТОЯТЕЛЬНАЯ РАБОТА
  6. III.2.1. Как работать в библиотеке
  7. IV. РАБОТА С УЧАЩИМИСЯ ШКОЛЫ.
  8. KOHTPОЛЬНАЯ РАБОТА № 2
  9. OSV: Работал когда-то в Соединенных Штатах Америки (а конкретно — в городе Феникс, штат Аризона) один известный и очень действенный гипнотизер по имениМилтон Эриксон.
  10. Quot;Вредно" не работает

Данные типа дата/время приходится обрабатывать довольно часто, поэтому все современные языки программирования предлагают удобный механизм для работы с ними в одной из своих библиотек.

В Java для этих целей разработаны классы Date и Calendar, собранные в пакете java.util.

Класс Date хранит число миллисекунд, прошедших с 1 января 1970 года (во внутреннем поле, имеющем тип long). Конструктор без параметров этого класса создает объект, содержащий текущее время (по системным часам ма­шины, на которой выполняется программа). Другой конструктор, с парамет­ром типа long, создает объект Date на основе заданного числа.

Метод getTime() позволяет получить это число, а метод setTime(long newTime) — изменить.

Для отображения даты на экране ее внутреннее представление необходимо перевести в строку, более удобную для восприятия. Для этого обычно исполь­зуется класс SimpleDateFormat (являющийся наследником абстрактного классаDateFormat), который надо импортировать из пакета java.text. Преж­де всего необходимо создать объект этого класса, указав в качестве параметра конструктора строку, определяющую способ форматирования. Например:

SimpleDateFormat formatter = new SimpleDateFormat("dd.M­M.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 min­utes, 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 re­sult = 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 | Поможем написать вашу работу | Нарушение авторских прав

Объявление метода | Вызов метода | Создание массива |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.013 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав