/*
Исходный код среды исполнения ПВТ-ОО.
Этот исходный код является частью проекта ПВТ-ОО.
Copyright © 2021 Малик Разработчик
Это свободная программа: вы можете перераспространять её и/или
изменять её на условиях Меньшей Стандартной общественной лицензии GNU в том виде,
в каком она была опубликована Фондом свободного программного обеспечения;
либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она может быть полезна,
но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННЫХ ЦЕЛЕЙ. Подробнее см. в Меньшей Стандартной
общественной лицензии GNU.
Вы должны были получить копию Меньшей Стандартной общественной лицензии GNU
вместе с этой программой. Если это не так, см.
<http://www.gnu.org/licenses/>.
*/
package avt.util;
public final class Timestamp(Object, Comparable, Cloneable)
{
private final long fldTimeInMillis;
public () { fldTimeInMillis = System.currentTimeInMillis(); }
public (long timeInMillis) { fldTimeInMillis = timeInMillis; }
public boolean equals(Object anot) { return anot == this || anot instanceof Timestamp && fldTimeInMillis == ((Timestamp) anot).fldTimeInMillis; }
public int hashCode() {
long value = fldTimeInMillis;
return (int) (value ^ (value >> 32));
}
public long hashCodeAsLong() { return fldTimeInMillis; }
public String toString() { return (new GregorianCalendar(fldTimeInMillis)).toString(); }
public int compareTo(Comparable anot) { return !(anot instanceof Timestamp) ? INDEFINITE : Long.compare(fldTimeInMillis, ((Timestamp) anot).fldTimeInMillis); }
public Timestamp clone() { return new Timestamp(fldTimeInMillis); }
public long toUnixTime() { return fldTimeInMillis + -0x00003883122cd800L; }
public String toString(Calendar use) {
if(use == null)
{
use = new GregorianCalendar(fldTimeInMillis);
} else
{
use.timeInMillis = fldTimeInMillis;
}
return use.toString();
}
public long timeInMillis { read = fldTimeInMillis }
}