45 lines
1.3 KiB
Java
45 lines
1.3 KiB
Java
package io.gitlab.jfronny.muscript.data.dynamic.additional;
|
|
|
|
import io.gitlab.jfronny.muscript.compiler.ExprWriter;
|
|
import io.gitlab.jfronny.muscript.data.dynamic.*;
|
|
|
|
import java.io.IOException;
|
|
import java.time.LocalDate;
|
|
import java.util.Map;
|
|
import java.util.function.Supplier;
|
|
|
|
public record DDate(Supplier<LocalDate> date) implements DObject {
|
|
@Override
|
|
public Map<String, Dynamic<?>> getValue() {
|
|
return Map.of(
|
|
"year", DFinal.of(date.get().getYear()),
|
|
"month", DFinal.of(date.get().getMonthValue()),
|
|
"day", DFinal.of(date.get().getDayOfMonth())
|
|
);
|
|
}
|
|
|
|
@Override
|
|
public DString asString() {
|
|
return DFinal.of(toString());
|
|
}
|
|
|
|
@Override
|
|
public DNumber asNumber() {
|
|
return DFinal.of(date.get().toEpochDay());
|
|
}
|
|
|
|
@Override
|
|
public void serialize(ExprWriter writer) throws IOException {
|
|
writer.append("date(")
|
|
.append(String.valueOf(date.get().getYear())).append(", ")
|
|
.append(String.valueOf(date.get().getMonthValue())).append(", ")
|
|
.append(String.valueOf(date.get().getDayOfMonth()))
|
|
.append(")");
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return date.get().toString();
|
|
}
|
|
}
|