UNPKG

cstd

Version:

CoffeeScript Standart Library

326 lines (271 loc) 12.7 kB
# Создаёт класс, не отличающийся от `Date`, но который можно свободно \ # наследовать и расширять. Сам по себе Date не является расширяемым # (напоминает *finally*). {CSObject} = require './object.coffee' # Класс, который накладывается поверх `Date` повторяя его методы # и экземпляры которого будут повторять методы экземпляров `Date` class CSDate extends Date # @property {Date} хранимое оригинальное значение для работы с ним # @private __base__: null ### Конструктор создаёт экземпляр идиентично `Date` по одному из четырёх путей: 1. new CSDate(); 2. new CSDate(value); 3. new CSDate(dateString); 4. new CSDate(year, month[, day[, hour[, minute[, second[, ms]]]]]); @overload constructor () без аргументов, создаётся объект, хранящий значение времени создания @overload constructor (date) создаёт объект сметкойвремени, как у `date` @param {CSDate|Date} date @throw {TypeError} если `date` не дата (или потомк даты) и не число @overload constructor (number) создаёт объект, у которого количество миллисекунд равно аргументу @param {Number} milliseconds @throw {TypeError} если `date` не дата (или потомк даты) и не число @overload constructor (year, month, day, hour, minute, second, ms) создаёт объект на основе переданных соответствующих значений @param {Number} year год в полном формате @param {Number} mount месяц, [0..11] @param {Number} day день, начиная с 1. [default = 1] @param {Number} hour час [default = 0] @param {Number} minute минута [default = 0] @param {Number} second секунда [default = 0] @param {Number} ms милисекунда [default = 0] @throw {TypeError} родителя если что-то не так ### constructor: (year, month= 0, day= 1, hour= 0, minute= 0, second= 0, ms= 0) -> return new CSDate() unless @ instanceof CSDate switch arguments.length when 0 then @__base__ = new Date() when 1 if typeof year isnt 'number' and not (year instanceof Date) throw new TypeError 'first param is not a Number and not a Date' @__base__ = new Date(year) else @__base__ = new Date(year, month, day, hour, minute, second, ms) # Удаление объекта для очистки # @return {null} destructor: -> @__base__ = null null # Наследует `Date.UTC` (преобразует набор аргументов год, месяц... в # количество миллисекунд с эпохи юникс в 0-ом часовом поясе) # @param {Number...} args... то же, что и в 4-ом варианте new CSDate() # @return {Number} миллисекунды в нулевом часовом поясе @UTC: (args...) -> return Date.UTC args... # Наследует `Date.parse` (разбирает строку и возвращает количество мс) # @param {String} dateString разбираемая строка # @return {Number} миллисекунды @parse: (dateString) -> return Date.parse dateString # Наследует `Date.now` (получает количество мс с начала эпохи # юникс на момент вызова) # @return {Number} миллисекунды @now: -> return Date.now() # Наследует `Date::getDate()` # @return {Number} число месяца getDate: (args...) -> @__base__.getDate args... # Наследует `Date::setDate(date)` # @param {Number} date день месяца # @return {Number} милиссекунды новой даты setDate: (args...) -> @__base__.setDate args... # Наследует `Date::getDay()` # @return {Number} днь недели getDay: (args...) -> @__base__.getDay args... # Наследует `Date::getFullYear()` # @return {Number} год от рождения Христа getFullYear: (args...) -> @__base__.getFullYear args... # Наследует `Date::setFullYear()` # @param {Number} fullYear год # @return {Number} милиссекунды новой даты setFullYear: (args...) -> @__base__.setFullYear args... # Наследует `Date::getHours()` # @return {Number} hours час getHours: (args...) -> @__base__.getHours args... # Наследует `Date::setHours(hour)` # @param {Number} hour час # @return {Number} милиссекунды новой даты setHours: (args...) -> @__base__.setHours args... # Наследует `Date::()getMilliseconds` # @return {Number} getMilliseconds: (args...) -> @__base__.getMilliseconds args... # Наследует `Date::setMilliseconds(ms)` # @param {Number} ms милисекунда # @return {Number} милиссекунды новой даты setMilliseconds: (args...) -> @__base__.setMilliseconds args... # Наследует `Date::getMinutes()` # @return {Number} минуты getMinutes: (args...) -> @__base__.getMinutes args... # Наследует `Date::setMinutes(minute)` # @param {Number} minute минута # @return {Number} милиссекунды новой даты setMinutes: (args...) -> @__base__.setMinutes args... # Наследует `Date::getMonth()` # @return {Number} номер месяца (с 0) getMonth: (args...) -> @__base__.getMonth args... # Наследует `Date::setMonth(month)` # @param {Number} month месяц # @return {Number} милиссекунды новой даты setMonth: (args...) -> @__base__.setMonth args... # Наследует `Date::getSeconds()` # @return {Number} секунды getSeconds: (args...) -> @__base__.getSeconds args... # Наследует `Date::setSeconds(second)` # @param {Number} second секунда # @return {Number} милиссекунды новой даты setSeconds: (args...) -> @__base__.setSeconds args... # Наследует `Date::getTime()` # @return {Number} миллисекунды с эпохи юникс getTime: (args...) -> @__base__.getTime args... # Наследует `Date::setTime(ms)` # @param {Number} ms миллисекунда с начала эпохи юникс # @return {Number} милиссекунды новой даты setTime: (args...) -> @__base__.setTime args... # Наследует `Date::getYear()`. Устарел # @return {Number} две цифры года # @deprecated getYear: (args...) -> @__base__.getYear args... # Наследует `Date::setYear(year)`. Устарел # @param {Number} year год # @return {Number} милиссекунды новой даты # @deprecated setYear: (args...) -> @__base__.setYear args... # Наследует `Date::getTimezoneOffset()` # @return {Number} смещение от гринвича в минутах getTimezoneOffset: (args...) -> @__base__.getTimezoneOffset args... # Наследует `Date::getUTCDate()` # @return {Number} день месяца по гринвичу getUTCDate: (args...) -> @__base__.getUTCDate args... # Наследует `Date::setUTCDate(date)` # @param {Number} date день месяца по гринвичу # @return {Number} милиссекунды новой даты setUTCDate: (args...) -> @__base__.setUTCDate args... # Наследует `Date::getUTCDay()` # @return {Number} день недели по гринвичу getUTCDay: (args...) -> @__base__.getUTCDay args... # Наследует `Date::getUTCFullYear()` # @return {Number} год по гринвичу getUTCFullYear: (args...) -> @__base__.getUTCFullYear args... # Наследует `Date::setUTCFullYear(fullYear)` # @param {Number} fullYear год по гринвичу # @return {Number} милиссекунды новой даты setUTCFullYear: (args...) -> @__base__.setUTCFullYear args... # Наследует `Date::getUTCHours()` # @return {Number} час по гринвичу getUTCHours: (args...) -> @__base__.getUTCHours args... # Наследует `Date::setUTCHours(hour)` # @param {Number} hour час по гринвичу # @return {Number} милиссекунды новой даты setUTCHours: (args...) -> @__base__.setUTCHours args... # Наследует `Date::getUTCMilliseconds()` # @return {Number} миллисекунды по гринвичу (будто они могут отличаться) getUTCMilliseconds: (args...) -> @__base__.getUTCMilliseconds args... # Наследует `Date::setUTCMilliseconds(ms)` # @param {Number} ms миллисекунды по гринвичу # @return {Number} милиссекунды новой даты setUTCMilliseconds: (args...) -> @__base__.setUTCMilliseconds args... # Наследует `Date::getUTCMinutes()` # @return {Number} минуты по гринвичу getUTCMinutes: (args...) -> @__base__.getUTCMinutes args... # Наследует `Date::setUTCMinutes(minute)` # @param {Number} minute минуты по гринвичу # @return {Number} милиссекунды новой даты setUTCMinutes: (args...) -> @__base__.setUTCMinutes args... # Наследует `Date::getUTCMonth()` # @return {Number} номер месяца по гринвичу (начиная с 0) getUTCMonth: (args...) -> @__base__.getUTCMonth args... # Наследует `Date::setUTCMonth(month)` # @param {Number} month номер месяца по гринвичу (начиная с 0) # @return {Number} милиссекунды новой даты setUTCMonth: (args...) -> @__base__.setUTCMonth args... # Наследует `Date::getUTCSeconds()` # @return {Number} секунды по гринвичу (ещё раз ха!) getUTCSeconds: (args...) -> @__base__.getUTCSeconds args... # Наследует `Date::setUTCSeconds(second)` # @param {Number} second секунды по гринвичу (ещё раз ха!) # @return {Number} милиссекунды новой даты setUTCSeconds: (args...) -> @__base__.setUTCSeconds args... # Наследует `Date::toDateString()` # @return {String} {День недели} {месяц} {число} {год} toDateString: (args...) -> @__base__.toDateString args... # Наследует `Date::toGMTString()` # @return {String} WWW, DD MMM YYYY HH:mm:SS GMT toGMTString: (args...) -> @__base__.toGMTString args... # Наследует `Date::toISOString()` # @return {String} YYYY-MM-DDTHH:mm:SS.sssZ toISOString: (args...) -> @__base__.toISOString args... # Наследует `Date::toJSON()` # @return {String} YYYY-MM-DDTHH:mm:SS.sssZ toJSON: (args...) -> @__base__.toJSON args... # Наследует `Date::toJSON()` # @return {String} WWW MMM DD YYYY HH:mm:SS GMTppppp (CCC) toString: (args...) -> @__base__.toString args... # Наследует `Date::toTimeString()` # @return {String} HH:mm:SS GMTppppp (CCC) toTimeString: (args...) -> @__base__.toTimeString args... # Наследует `Date::toUTCString()` # @return {String} WWW, DD MMM YYYY HH:mm:SS GMT toUTCString: (args...) -> @__base__.toUTCString args... # Наследует `Date::valueOf()` # @return {Number} миллисекунды с начала эпохи юникс valueOf: (args...) -> @__base__.valueOf args... # Наследует `Date::toLocaleDateString()` # @return {String} WWWW, MMMM DD, YYYY toLocaleDateString: (args...) -> @__base__.toLocaleDateString args... # Наследует `Date::toLocaleString()` # @return {String} WWW MMM DD YYYY HH:mm:SS GMTppppp (CCC) toLocaleString: (args...) -> @__base__.toLocaleString args... # Наследует `Date::toLocaleTimeString()` # @return {String} HH:mm:SS toLocaleTimeString: (args...) -> @__base__.toLocaleTimeString args... module.exports = { CSDate }