import { JsDate } from "./JsDate";
import { PrintObject } from "./PrintObject";
import { Boolean } from "../dataType/Boolean";
import { Date } from "./Date";
/**
 *  gve
 * @class gve.DateRange
 * @since gve
 */
export class DateRange extends PrintObject {
  /**
   * 构造DateRange实例
   * @hideconstructor
   * @param {Date|number|string|object} start 开始的时间范围
   * @param {Date|number|string|object} [end] 可选参数,结束的时间范围
   * @param {string} [timeZone] 时区
   * @returns gve.DateRange
   */
  constructor(start: JsDate|number|string|object, end?: JsDate|number|string|object, timeZone?:string) {
    super();
    if (!(this instanceof DateRange)) {
      return new DateRange(start, end, timeZone);
    }
  }

  /**
   * 判断是否包含该时间日期或者时间范围
   * @param {Date|DateRange} other 时间或者时间范围
   * @returns Boolean
   */
  contains(other: Date|DateRange) {
    return new Boolean();
  }

  /**
   * 返回时间范围内的结束时间
   * @returns Date
   */
  end() {
    return new Date(0);
  }

  /**
   * 返回是否有交集的时间点
   * @param {DateRange} other 时间范围
   * @returns Boolean
   */
  intersects(other: DateRange) {
    return new Boolean();
  }

  /**
   * 判断时间范围内是否没时间
   * @returns Boolean
   */
  isEmpty() {
    return new Boolean();
  }

  /**
   * 返回该时间范围内开始的时间
   * @returns Date
   */
  start() {
    return new Date(0);
  }

}