# PlainTime

`import { PlainTime } from "destack:time";`

Temporal plain time.

```ds title="PlainTime"
export class PlainTime {
    static from(item: PlainTime | PlainTimeLike | string, options?: AssignmentOptions | undefined): PlainTime;
    static compare(one: PlainTime | PlainTimeLike | string, two: PlainTime | PlainTimeLike | string): -1 | 0 | 1;
    constructor(hour?: float64 | undefined, minute?: float64 | undefined, second?: float64 | undefined, millisecond?: float64 | undefined, microsecond?: float64 | undefined, nanosecond?: float64 | undefined);
    get hour(): float64;
    get minute(): float64;
    get second(): float64;
    get millisecond(): float64;
    get microsecond(): float64;
    get nanosecond(): float64;
    equals(other: PlainTime | PlainTimeLike | string): boolean;
    with(timeLike: PlainTime | PlainTimeLike, options?: AssignmentOptions | undefined): PlainTime;
    add(durationLike: Duration | DurationLike | string, options?: ArithmeticOptions | undefined): PlainTime;
    subtract(durationLike: Duration | DurationLike | string, options?: ArithmeticOptions | undefined): PlainTime;
    until(other: PlainTime | PlainTimeLike | string, options?: DifferenceOptions<"hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond"> | undefined): Duration;
    since(other: PlainTime | PlainTimeLike | string, options?: DifferenceOptions<"hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond"> | undefined): Duration;
    round(roundTo: SmallestUnit<"hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond"> | { smallestUnit: SmallestUnit<"hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond">; roundingIncrement?: float64; roundingMode?: RoundingMode }): PlainTime;
    toLocaleString(locales?: LocalesArgument | undefined, options?: DateTimeFormatOptions | undefined): Cow<"frame", string>;
    toJSON(): Cow<"frame", string>;
    toString(options?: ToStringPrecisionOptions | undefined): Cow<"frame", string>;
    valueOf(): never;
}
```

[language/library/src/time/plain-time.ds:32:159](https://github.com/destack-sh/destack/blob/main/language/library/src/time/plain-time.ds#L32-L159)

## Members

### `static from(item: PlainTime | PlainTimeLike | string, options?: AssignmentOptions | undefined): PlainTime`

Create a plain time.

### `static compare(one: PlainTime | PlainTimeLike | string, two: PlainTime | PlainTimeLike | string): -1 | 0 | 1`

Compare two plain times.

### `constructor(hour?: float64 | undefined, minute?: float64 | undefined, second?: float64 | undefined, millisecond?: float64 | undefined, microsecond?: float64 | undefined, nanosecond?: float64 | undefined)`

Create a plain time.

### `get hour(): float64`

Hour.

### `get minute(): float64`

Minute.

### `get second(): float64`

Second.

### `get millisecond(): float64`

Millisecond.

### `get microsecond(): float64`

Microsecond.

### `get nanosecond(): float64`

Nanosecond.

### `equals(other: PlainTime | PlainTimeLike | string): boolean`

Return true when this time equals `other`.

### `with(timeLike: PlainTime | PlainTimeLike, options?: AssignmentOptions | undefined): PlainTime`

Return this time with updated fields.

### `add(durationLike: Duration | DurationLike | string, options?: ArithmeticOptions | undefined): PlainTime`

Add a duration.

### `subtract(durationLike: Duration | DurationLike | string, options?: ArithmeticOptions | undefined): PlainTime`

Subtract a duration.

### `until(other: PlainTime | PlainTimeLike | string, options?: DifferenceOptions<"hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond"> | undefined): Duration`

Return the duration until `other`.

### `since(other: PlainTime | PlainTimeLike | string, options?: DifferenceOptions<"hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond"> | undefined): Duration`

Return the duration since `other`.

### `round(roundTo: SmallestUnit<"hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond"> | { smallestUnit: SmallestUnit<"hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond">; roundingIncrement?: float64; roundingMode?: RoundingMode }): PlainTime`

Round this time.

### `toLocaleString(locales?: LocalesArgument | undefined, options?: DateTimeFormatOptions | undefined): Cow<"frame", string>`

Return a locale-aware string.

### `toJSON(): Cow<"frame", string>`

Return a JSON string.

### `toString(options?: ToStringPrecisionOptions | undefined): Cow<"frame", string>`

Return an ISO string.

### `valueOf(): never`

Reject numeric coercion.
