import { PrintObject } from "./PrintObject";
import { Number } from "../dataType/Number";
import { String } from "../dataType/String";
import { DateRange } from "./DateRange";
import { JsDate } from "./JsDate";
/**
* gve
* @class gve.Date
* @since gve
*/
export class Date extends PrintObject {
/**
* 构造Date实例
* @hideconstructor
* @param {Date|number|string|object} date Date|NUmber|String|js可以计算的对象 转换日期(数字毫秒数,ISO日期字符串,JavaScript日期或者计算值的日期)
* @param {string} [tz] 时区
* @returns gve.Date
*/
constructor(date: JsDate|number|string|object, tz?: string) {
super();
if (!(this instanceof Date)) {
return new Date(date, tz);
}
}
/**
* 将指定的时间间隔添加到给定的日期中来创建新的日期
* @param {number} delta 时间间隔
* @param {string} unit 时间单位,year|month|week|day|hour|minute|second
* @param {string} [timeZone] 可选参数,时区
* @returns Date
*/
advance(delta: number, unit: string, timeZone?: string) {
return new Date(0);
}
/**
* 返回两个时间日期指定单位之间的差异
* @param {Date} start 时间间隔
* @param {string} unit 时间单位,year|month|week|day|hour|minute|second
* @returns Number
*/
difference(start: JsDate, unit: string) {
return new Number();
}
/**
* 转换日期为字符串格式
* @param {string} [format] 可选参数,时间日期格式
* @param {string} [timeZone] 可选参数,时区
* @returns String
*/
format(format?: string, timeZone?: string) {
return new String();
}
/**
* 返回给定年月日的日期
* @param {number} year 年
* @param {number} month 月
* @param {number} day 日
* @param {string} [timeZone] 可选参数,时区
* @returns Date
* @tutorial gve.Date
*/
static fromYMD(year: number, month: number, day: number, timeZone?: string) {
return new Date(0);
}
/**
* 返回特定的日期
* @param {string} unit 时间单位,year|month|week|day|hour|minute|second
* @param {string} [timeZone] 可选参数,时区
* @returns Number
*/
get(unit: string, timeZone?: string) {
return new Number();
}
/**
* 返回包含该日期的指定类型单位的日期范围
* @param {string} unit 时间单位,year|month|week|day|hour|minute|second
* @param {string} [timeZone] 可选参数,时区
* @returns DateRange
*/
getRange(unit: string, timeZone?: string) {
return new DateRange(0);
}
/**
* 返回该日期相对于更大单位的指定单位
* @param {string} unit 时间单位,year|month|week|day|hour|minute|second
* @param {string} inUnit 时间单位,year|month|week|day|hour|minute|second
* @param {string} [timeZone] 可选参数,时区
* @returns Number
*/
getRelative(unit: string, inUnit: string, timeZone?: string) {
return new Number();
}
/**
* 返回时间毫秒数
* @returns Number
*/
mills() {
return new Number();
}
/**
* 根据给定的时间单位创建一个新的时间
* @param {number} [year] 可选参数,年
* @param {number} [month] 可选参数,月
* @param {number} [day] 可选参数,日
* @param {number} [hour] 可选参数,时
* @param {number} [minute] 可选参数,分
* @param {number} [second] 可选参数,秒
* @param {string} [timeZone] 可选参数,时区
* @returns Date
*/
update(year?: number, month?: number, day?: number, hour?: number, minute?: number, second?: number, timeZone?: string) {
return new Date(0);
}
}