/** * 2014 Matt Seddon * This code is donated in full to the scala-js project. */ package java.util import scalajs.js class Date private (private val date: js.Date) extends Object with Serializable with Cloneable with Comparable[Date] { import Date._ def this() = this(new js.Date()) @Deprecated def this(year: Int, month: Int, date: Int, hrs: Int, min: Int, sec: Int) = { this(new js.Date()) this.date.setFullYear(1900 + year, month, date) this.date.setHours(hrs, min, sec, 0) } @Deprecated def this(year: Int, month: Int, date: Int, hrs: Int, min: Int) = this(year, month, date, hrs, min, 0) @Deprecated def this(year: Int, month: Int, date: Int) = this(year, month, date, 0, 0, 0) def this(date: Long) = this(new js.Date(date)) @Deprecated def this(date: String) = this(new js.Date(date)) def after(when: Date): Boolean = date.getTime() > when.date.getTime() def before(when: Date): Boolean = date.getTime() < when.date.getTime() override def clone(): Object = new Date(new js.Date(date.getTime())) override def compareTo(anotherDate: Date): Int = date.getTime().compareTo(anotherDate.date.getTime()) override def equals(obj: Any): Boolean = obj match { case d: Date => d.date.getTime() == date.getTime() case _ => false } override def hashCode(): Int = date.getTime().hashCode() @Deprecated def getDate(): Int = date.getDate() @Deprecated def getDay(): Int = date.getDay() @Deprecated def getHours(): Int = date.getHours() @Deprecated def getMinutes(): Int = date.getMinutes() @Deprecated def getMonth(): Int = date.getMonth() @Deprecated def getSeconds(): Int = date.getSeconds() def getTime(): Long = date.getTime().toLong @Deprecated def getTimeZoneOffset(): Int = date.getTimezoneOffset() @Deprecated def getYear(): Int = date.getFullYear() - 1900 @Deprecated def setDate(date: Int): Unit = this.date.setDate(date) @Deprecated def setHours(hours: Int): Unit = date.setHours(hours) @Deprecated def setMinutes(minutes: Int): Unit = date.setMinutes(minutes) @Deprecated def setMonth(month: Int): Unit = date.setMonth(month) @Deprecated def setSeconds(seconds: Int): Unit = date.setSeconds(seconds) def setTime(time: Long): Unit = date.setTime(time) @Deprecated def setYear(year: Int): Unit = date.setFullYear(1900 + year) @Deprecated def toGMTString(): String = { date.getUTCDate() + " " + Months(date.getUTCMonth()) + " " + date.getUTCFullYear() + " " + pad0(date.getUTCHours()) + ":" + pad0(date.getUTCMinutes()) + ":" + pad0(date.getUTCSeconds()) +" GMT" } @Deprecated def toLocaleString(): String = { date.getDate() + "-" + Months(date.getMonth()) + "-" + date.getFullYear() + "-" + pad0(date.getHours()) + ":" + pad0(date.getMinutes()) + ":" + pad0(date.getSeconds()) } override def toString(): String = { val offset = -date.getTimezoneOffset() val sign = if(offset < 0) "-" else "+" val hours = pad0(Math.abs(offset) / 60) val mins = pad0(Math.abs(offset) % 60) Days(date.getDay()) + " "+ Months(date.getMonth()) + " " + pad0(date.getHours()) + ":" + pad0(date.getMinutes()) + ":" + pad0(date.getSeconds()) + " GMT" + sign + hours + mins + " " + date.getFullYear() } } object Date { private val Days = Array( "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") private val Months = Array( "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") private def pad0(i: Int): String = { val str = "" + i if (str.length < 2) "0" + str else str } @Deprecated def UTC(year: Int, month: Int, date: Int, hrs: Int, min: Int, sec: Int): Long = js.Date.UTC(year + 1900, month, date, hrs, min, sec).toLong @Deprecated def parse(string: String): Long = new Date(new js.Date(string)).getTime.toLong }