/* ĠCopyright Ġ 2 0 2 1 ĠBetter ĠLtd Ġ( www . better . care ) Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcare . better . platform . time . temporal Ċ Ċ import Ġcare . better . platform . time . Open E hr DateTime Formatter Context Ċ import Ġjava . io . Serializable Ċ import Ġjava . time . Clock Ċ import Ġjava . time . Offset DateTime Ċ import Ġjava . time . Zone Offset Ċ import Ġjava . time . format . Resolver Style Ċ import Ġjava . time . temporal . Temporal Ċ import Ġjava . time . temporal . Temporal Accessor Ċ import Ġjava . time . temporal . Temporal Field Ċ import Ġjava . time . temporal . Temporal Unit Ċ Ċ /** Ċ Ġ* Ġ@ author ĠM atic ĠR ib ic Ċ Ġ*/ Ċ class ĠOpen E hr Offset DateTime ( ĊĠĠĠĠĠĠĠ ĠdateTime : ĠOffset DateTime , ĊĠĠĠĠĠĠĠ Ġprecision Field : ĠOpen E hr Field , ĊĠĠĠĠĠĠĠ Ġfield States : ĠMap < Open E hr Field , ĠOpen E hr Field State >, ĊĠĠĠĠĠĠĠ Ġresolver Style : ĠResolver Style ) Ġ: ĊĠĠĠ ĠOpen E hr Temporal < Offset DateTime >( dateTime , Ġprecision Field , Ġfield States , Ġresolver Style ), ĠComparable < Open E hr Offset DateTime >, ĠSerializable Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnow (): ĠOpen E hr Offset DateTime Ġ= Ġnow ( Clock . system Default Zone ()) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnow ( clock : ĠClock ): ĠOpen E hr Offset DateTime Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOpen E hr Offset DateTime ( Offset DateTime . now ( clock ), ĠOpen E hr Field . MIN IMUM , ĠgetDefault Field States ( Open E hr Field . DATE _ TIME _ FIELDS ), ĠResolver Style . SM ART ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠĠĠĠĠ Ġfun Ġof ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyear : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmonth : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday OfMonth : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhour : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminute : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecond : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnano : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoffset : ĠZone Offset ): ĠOpen E hr Offset DateTime Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġof ( year , Ġmonth , Ġday OfMonth , Ġhour , Ġminute , Ġsecond , Ġnano , Ġoffset , ĠgetDefault Field States ( Open E hr Field . DATE _ TIME _ FIELDS )) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġof ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyear : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmonth : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday OfMonth : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhour : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminute : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecond : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnano : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoffset : ĠZone Offset , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield States : ĠMap < Open E hr Field , ĠOpen E hr Field State >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolver Style : ĠResolver Style Ġ= ĠResolver Style . SM ART ): ĠOpen E hr Offset DateTime Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOpen E hr Offset DateTime ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOffset DateTime . of ( year , Ġmonth Ġ?: Ġ 1 , Ġday OfMonth Ġ?: Ġ 1 , Ġhour Ġ?: Ġ 0 , Ġminute Ġ?: Ġ 0 , Ġsecond Ġ?: Ġ 0 , Ġnano Ġ?: Ġ 0 , Ġoffset ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( Open E hr Local Time . get Precision ( hour , Ġminute , Ġsecond , Ġnano ) Ġ?: ĠOpen E hr LocalDate . get Precision ( year , Ġmonth , Ġday OfMonth )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield States , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolver Style ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġfrom ( temporal : ĠTemp oral Accessor , Ġprecision Field : ĠOpen E hr Field , Ġcontext : ĠOpen E hr DateTime Formatter Context ): ĠOpen E hr Offset DateTime Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( temporal Ġis ĠOpen E hr Offset DateTime ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtemporal ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire NotNull ( Zone Offset . from ( temporal ), Ġ{ Ġ" temporal " Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOpen E hr Offset DateTime ( Offset DateTime . from ( temporal ), Ġprecision Field , Ġcontext . pattern Field States , Ġcontext . resolver Style ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto LocalDateTime (): ĠOpen E hr LocalDateTime Ġ= ĠOpen E hr LocalDateTime ( dateTime . to LocalDateTime (), Ġprecision Field , Ġfield States , Ġresolver Style ) ĊĊĠĠĠ Ġfun Ġto Offset Time (): ĠOpen E hr Offset Time Ġ= ĠOpen E hr Offset Time ( dateTime . to Offset Time (), Ġprecision Field , Ġfield States , Ġresolver Style ) ĊĊĠĠĠ Ġfun Ġwith Offset Same Instant ( offset : ĠZone Offset ): ĠOpen E hr Offset DateTime Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( dateTime . offset Ġ== Ġoffset ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠdateTime . with Offset Same Instant ( offset ). to LocalDateTime (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOpen E hr Offset DateTime ( Offset DateTime . of ( it , Ġoffset ), Ġprecision Field , Ġfield States , Ġresolver Style ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠdateTime : ĠOffset DateTime Ġ= Ġtemporal ĊĊĠĠĠ Ġoverride Ġfun Ġwith ( field : ĠTemp oral Field , ĠnewValue : ĠLong ): ĠTemp oral Ġ= ĊĠĠĠĠĠĠĠ ĠOpen E hr Offset DateTime ( dateTime . with ( field , ĠnewValue ), Ġwith Temporal Field ( field ), Ġfield States , Ġresolver Style ) ĊĊĠĠĠ Ġoverride Ġfun Ġplus ( amount ToAdd : ĠLong , Ġunit : ĠTemp oral Unit ): ĠTemp oral Ġ= ĊĠĠĠĠĠĠĠ ĠOpen E hr Offset DateTime ( dateTime . plus ( amount ToAdd , Ġunit ), Ġwith Temporal Unit ( unit ), Ġfield States , Ġresolver Style ) ĊĊĠĠĠ Ġoverride Ġfun Ġto Exact Temporal (): ĠTemp oral Accessor Ġ= Ġthis . take Unless Ġ{ Ġprecision Field Ġ== ĠOpen E hr Field . NAN OS Ġ} Ġ?: ĠdateTime ĊĊĠĠĠ Ġoverride Ġfun Ġcompare To ( other : ĠOpen E hr Offset DateTime ): ĠInt Ġ= ĠdateTime . compareTo ( other . dateTime ) Ċ }