Skip to content

Add java.time objects to TimeParameters#300

Open
Erikvv wants to merge 1 commit into
mainfrom
time-objects
Open

Add java.time objects to TimeParameters#300
Erikvv wants to merge 1 commit into
mainfrom
time-objects

Conversation

@Erikvv

@Erikvv Erikvv commented Jun 17, 2026

Copy link
Copy Markdown
Member

For interoperability with the time series library.

@Erikvv Erikvv requested review from AteZenmo and Luc-Sol June 17, 2026 16:06
@Erikvv Erikvv changed the title Add java.time object to TimeParameters Add java.times object to TimeParameters Jun 17, 2026
@AteZenmo

Copy link
Copy Markdown
Member

Ik zou wel iets meer toelichting kunnen gebruiken op wat deze functies doen.

@AteZenmo

Copy link
Copy Markdown
Member

Want stepduration kan wat mij betreft wel een eenheid gebruiken misschien?

For interoperability with the time series library.
@Erikvv

Erikvv commented Jun 18, 2026

Copy link
Copy Markdown
Member Author

Ik zou wel iets meer toelichting kunnen gebruiken op wat deze functies doen.

Ik heb commentaar toegevoegd aan de code. Is het zo duiderlijker?

@Erikvv

Erikvv commented Jun 18, 2026

Copy link
Copy Markdown
Member Author

Want stepduration kan wat mij betreft wel een eenheid gebruiken misschien?

De eenheid is encapsulated in TemporalAmount.

In de praktijk gebruiken we Duration. Die gebruikt seconden + nanoseconden.

@Erikvv

Erikvv commented Jun 18, 2026

Copy link
Copy Markdown
Member Author

Ik zou een test toe willen voegen voor de toegevoegde code.

Hoe zien jullie dit graag?

Ik had in Interface-Loader een ALP toegevoegd die een test draait. Maar die is sindsdien door niemand gebruikt.

https://github.com/Zenmo/zero_Interface-Loader/tree/main/tests

Zal ik voor de Engine hetzelfde doen?

@Erikvv Erikvv changed the title Add java.times object to TimeParameters Add java.time objects to TimeParameters Jun 18, 2026
@Erikvv

Erikvv commented Jun 18, 2026

Copy link
Copy Markdown
Member Author

Ik kwam tot het inzicht dat ik niet het start jaar wil weten maar de startdatum en -tijd.

Dus ik heb dat toegevoegd ipv java.time.Year.

@JsonProperty("timeStep_h") double timeStep_h,
@JsonProperty("stepDuration") Duration stepDuration,
@JsonProperty("startYear") int startYear,
@JsonProperty("startYearObject") Year startYearObject,

@Erikvv Erikvv Jun 18, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ik zie dat ik de 2e constructor niet goed in sync houdt. Ik zou ook graag een test willen schrijven voor serialisatie + deserialisatie van deze class gezien dat blijkbaar tricky is.

@AteZenmo

AteZenmo commented Jun 18, 2026

Copy link
Copy Markdown
Member

Ik zou een test toe willen voegen voor de toegevoegde code.

Hoe zien jullie dit graag?

Ik had in Interface-Loader een ALP toegevoegd die een test draait. Maar die is sindsdien door niemand gebruikt.

https://github.com/Zenmo/zero_Interface-Loader/tree/main/tests

Zal ik voor de Engine hetzelfde doen?

Testen lijkt me een goed plan, in het algemeen voor LUX. Echter heb ik er niet zoveel kennis van, en kan ik niet goed overzien hoe en wat dat allemaal werkt.
Mischien handig dat we hier komende week/woensdag even voor zitten en een opzet/plan maken van hoe we dit structureel willen maken/gebruiken? Waarbij het mij handig lijkt dat je ons (mij iig) misschien weer even door de basics loopt Erik ;)
Ik zou me er graag voor in zetten namelijk.
En met oog op wat je zegt: 'zal ik voor de engine hetzelfde doen?'. Daar kan ik dus niet echt een geinformeerd antwoord op geven. Daarbij denk ik ook dat jij dit testen het beste overziet Erik, dus als jij het een goed idee vind, dan lijkt mij dat prima.

@AteZenmo

Copy link
Copy Markdown
Member

Ik zou wel iets meer toelichting kunnen gebruiken op wat deze functies doen.

Ik heb commentaar toegevoegd aan de code. Is het zo duiderlijker?

Ja, ik snap het doel nu. (Al bedoelde ik met iets meer toelichting niet perse comments in de code zelf haha, maar dit is ook goed!).

@AteZenmo

AteZenmo commented Jun 18, 2026

Copy link
Copy Markdown
Member

Blijft voor mij alleen een beetje appart dat 'getStart', 'getEnd' en getStepDuration niet echt een eenheid hebben. Omdat het dus (als ik het goed begrijp) eigenlijk simpelweg een punt/moment in tijd voorsteld (?). Waarna je heel simpel dat 'moment' / duratie kan omzetten in de eenheid die je wil (?).

Maar dat is prima natuurlijk, ik ben het gewoon niet gewend.

@Erikvv

Erikvv commented Jun 18, 2026

Copy link
Copy Markdown
Member Author

Testen (...)

Een nog beter idee lijkt me om de test module buiten AnyLogic te trekken zoals lux-esdl.

Laten we het idd bespreken.

@Erikvv

Erikvv commented Jun 18, 2026

Copy link
Copy Markdown
Member Author

Blijft voor mij alleen een beetje appart dat 'getStart', 'getEnd' en getStepDuration niet echt een eenheid hebben. Omdat het dus (als ik het goed begrijp) eigenlijk simpelweg een punt/moment in tijd voorsteld (?). Waarna je heel simpel dat 'moment' / duratie kan omzetten in de eenheid die je wil (?).

Het idee is dat het minder foutgevoelig is omdat je als je het consistent toepast je geen zorgen hoeft te maken over conversie tussen eenheden.

Bv:

Length wireLength = Length.ofKilometer(1);
Length wireWidth = Length.ofCentimeter(1);
Length wireHeight = Length.ofCentimeter(1);

Volume wireVolume = wireLength.times(wireWidth).times(wireHeight);

Density copperDensity = Density.ofKgPerM3(8960.0);

Weight wireWeight = copperDensity.times(wireVolume);

System.out.println(
    String.format(
        "The wire weighs %s tonnes and has a volume of %s liters"
        wireWeight.toTonnes(),
        wireVolume.toLiters(),
    )
);

@AteZenmo

Copy link
Copy Markdown
Member

Blijft voor mij alleen een beetje appart dat 'getStart', 'getEnd' en getStepDuration niet echt een eenheid hebben. Omdat het dus (als ik het goed begrijp) eigenlijk simpelweg een punt/moment in tijd voorsteld (?). Waarna je heel simpel dat 'moment' / duratie kan omzetten in de eenheid die je wil (?).

Het idee is dat het minder foutgevoelig is omdat je als je het consistent toepast je geen zorgen hoeft te maken over conversie tussen eenheden.

Bv:

Length wireLength = Length.ofKilometer(1);
Length wireWidth = Length.ofCentimeter(1);
Length wireHeight = Length.ofCentimeter(1);

Volume wireVolume = wireLength.times(wireWidth).times(wireHeight);

Density copperDensity = Density.ofKgPerM3(8960.0);

Weight wireWeight = copperDensity.times(wireVolume);

System.out.println(
    String.format(
        "The wire weighs %s tonnes and has a volume of %s liters"
        wireWeight.toTonnes(),
        wireVolume.toLiters(),
    )
);

nee oke, al weet ik niet of ik wel fan ben van het hierboven genoemd voorbeeld haha, maar voor tijd snap ik het wel.

@AteZenmo

Copy link
Copy Markdown
Member

@Luc-Sol Deze morgen ook meenemen in de reviews/ merges? Of is hij niet af @Erikvv ?

@Erikvv

Erikvv commented Jun 23, 2026

Copy link
Copy Markdown
Member Author

Heeft geen haast, kan best wachten tot de tests zijn geschreven

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants