Объект iDate
< Назад | Обновлено: 21 Ноября, 2014 |
Содержание
Предназначение
iDate в отличии от Date может оперировать датами и временем в диапазонах от 1 января 100 года до 31 декабря 9999 года. iDate это представление даты в виде 64 битного числа с плавающей запятой.
Целая часть обозначает количество дней с 30 декабря 1899 года, то есть число 2 будет означать 1 января 1900 года, для того чтобы указать даты до 30 декабря 1899 года число должно быть отрицательное, например число -1 будет обозначать 29 января 1899 года.
Дробная часть определяет время, к примеру, чтобы увеличить время на 1 час нужно прибавить 1/24, а если нужно прибавить 1 минуту то 1/1440. Недостатком данного объекта является низкая точность при работе с миллисекундами, погрешность составляет +/-150 миллисекунд.
Создание
Без аргументов
При создании объекта без аргументов, создается объект, который инициализируется текущей датой и временем.
var date = new iDate(); IR.Log("Date " + date.year + "." + date.month + "." + date.days); IR.Log("Time " + date.hours + ":" + date.minutes + ":" + date.seconds + "." + date.ms); IR.Log("Value " + date.value);
Результат:
- Date 2014.11.29
- Time 20:49:20.778
- Value 41972.86760159722
Один аргумент
Создание объекта используя один аргумент.
var date = new iDate(value);
Аргумент:
value - число с плавающей запятой, обозначающее совмещенное представление даты и времени.
Результат:
При создании объекта число с плавающей запятой преобразовывается в объект, из которго в свою очередь можно получить дату и время.
Примеры:
Создадим объект iDate, передав ему целое положительное число.
var d1 = new iDate(16384); IR.Log("Date 1 " + d1.year + "." + d1.month + "." + d1.date); IR.Log("Time 1 " + d1.hours + ":" + d1.minutes + ":" + d1.seconds + "." + d1.ms); IR.Log("Value 1" + d1.value);
Результат:
- Date 1 1944.11.8
- Time 1 0:0:0.0
- Value 1 16384
Создадим объект iDate, передав ему целое отрицательное число.
var d2 = new iDate(-16384); IR.Log("Date 2" + d2.year + "." + d2.month + "." + d2.date); IR.Log("Time 2" + d2.hours + ":" + d2.minutes + ":" + d2.seconds + "." + d2.ms); IR.Log("Value 2" + d2.value);
Результат:
- Date 2 1855.2.20
- Time 2 0:0:0.0
- Value 2 -16384
Более одного аргумента
Создание объекта с количеством аргументов больше чем один.
var date = new iDate(year, month, days, hours, minutes, seconds, ms);
Аргументы:
year - год month - месяц date - день hours - часы minutes - минуты seconds - секунды ms - миллисекунды
Результат:
При создании объекта происходит раздельное заполнение года, месяца, даты, часов, минут, секунд и миллисекунд. Если заполнены не все параметры, оставшиеся параметры заполняются текущим значением.
Примеры:
Создание объекта iDate, с текущими значениями даты и времени.
var cur = new iDate(); IR.Log("Cur Date " + cur.year + "." + cur.month + "." + cur.date); IR.Log("Cur Time " + cur.hours + ":" + cur.minutes + ":" + cur.seconds + "." + cur.ms); IR.Log("Cur Value" + cur.value);
Результат:
- Cur Date 2014.11.29
- Cur Time 21:6:45.128
- Cur Value41972.879688981484
Создание объекта iDate, с указанием года и месяца
var date1 = new iDate(1999, 1); IR.Log("Date 1 " + date1.year + "." + date1.month + "." + date1.date); IR.Log("Time 1 " + date1.hours + ":" + date1.minutes + ":" + date1.seconds + "." + date1.ms); IR.Log("Value 1 " + date1.value);
Результат:
- Date 1 1999.1.29
- Time 1 21:6:45.132
- Value 1 36189.87968902778
Создание объекта iDate, с указанием года, месяца и числа
var date2 = new iDate(1999, 1, 21); IR.Log("Date 2 " + date2.year + "." + date2.month + "." + date2.date); IR.Log("Time 2 " + date2.hours + ":" + date2.minutes + ":" + date2.seconds + "." + date2.ms); IR.Log("Value 2 " + date2.value);
Результат:
- Date 2 1999.1.21
- Time 2 21:6:45.133
- Value 2 36181.87968903935
Создание объекта iDate, с указанием года, месяца, числа и часа
var date3 = new iDate(1999, 1, 21, 4); IR.Log("Date 3 " + date3.year + "." + date3.month + "." + date3.date); IR.Log("Time 3 " + date3.hours + ":" + date3.minutes + ":" + date3.seconds + "." + date3.ms); IR.Log("Value 3 " + date3.value);
Результат:
- Date 3 1999.1.21
- Time 3 4:6:45.135
- Value 3 36181.171355729166
Создание объекта iDate, с указанием года, месяца, числа, часа и минуты
var date4 = new iDate(1999, 1, 21, 4, 16); IR.Log("Date 4 " + date4.year + "." + date4.month + "." + date4.date); IR.Log("Time 4 " + date4.hours + ":" + date4.minutes + ":" + date4.seconds + "." + date4.ms); IR.Log("Value 4 " + date4.value);
Результат:
- Date 4 1999.1.21
- Time 4 4:16:45.138
- Value 4 36181.17830020833
Создание объекта iDate, с указанием года, месяца, числа, часа, минуты и секунды
var date5 = new iDate(1999, 1, 21, 4, 16, 12); IR.Log("Date 5 " + date5.year + "." + date5.month + "." + date5.date); IR.Log("Time 5 " + date5.hours + ":" + date5.minutes + ":" + date5.seconds + "." + date5.ms); IR.Log("Value 5 " + date5.value);
Результат:
- Date 5 1999.1.21
- Time 5 4:16:12.139
- Value 5 36181.17791827546
Создание объекта iDate, с указанием года, месяца, числа, часа, минуты, секунды и миллисекунды
var date6 = new iDate(1999, 1, 21, 4, 16, 12, 400); IR.Log("Date 6 " + date6.year + "." + date6.month + "." + date6.date); IR.Log("Time 6 " + date6.hours + ":" + date6.minutes + ":" + date6.seconds + "." + date6.ms); IR.Log("Value 6 " + date6.value);
Результат:
- Date 6 1999.1.21
- Time 6 4:16:12.400
- Value 6 36181.177921296294
Методы
Объект не имеет методов.
Свойства
Свойства доступны, как для чтения, так и для записи.
- year - год
- month - месяц
- date - день
- hours - часы
- minutes - минуты
- seconds - секунды
- ms - миллисекунды
- value - совмещенное представление даты и времени в виде числа с плавающей запятой