package Ġcom . dev . cam eron c . android utilities Ċ Ċ import Ġorg . joda . time . DateTime Ċ import Ġorg . joda . time . LocalDate Ċ import Ġorg . joda . time . Years Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠDate Formatter Ġ@ Inject Ġconstructor () Ġ{ ĊĠĠĠ Ġfun Ġformat Date To Long Format ( date : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdateTime Ġ= ĠLocalDate . parse ( date ) ĊĠĠĠĠĠĠĠ Ġreturn ĠdateTime . toString ( Date Formats . date Format ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget TimeSpan From Now ( date : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocal Date Ġ= ĠDateTime . parse ( date ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ" Age Ġ${ Years . years Between ( local Date , ĠDateTime . now ()). years }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget TimeSpan At Time ( begin Date : ĠString ?, ĠendDate : ĠString ?): ĠString Ġ= Ġ" Age Ġ${ Years . years Between ( DateTime . parse ( begin Date ), ĠDateTime . parse ( endDate )). years }" ĊĊĠĠĠ Ġfun Ġget Year Span ( startDate : ĠString , ĠendDate : ĠString Ġ= Ġ"") : ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstart DateTime Ġ= ĠDateTime . parse ( startDate ) ĊĠĠĠĠĠĠĠ Ġval Ġend DateTime Ġ= Ġif Ġ( endDate . isEmpty ()) ĠDateTime . now () Ġelse ĠDateTime . parse ( endDate ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( start DateTime . year () Ġ== Ġend DateTime . year ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" (${ start DateTime . year (). asString })" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" (${ start DateTime . year (). asString } ĠâĢĵ Ġ${ end DateTime . year (). asString })" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠDate Formats Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠdateFormat : ĠString Ġ= Ġ" MMMM Ġd , Ġy yyy " ĊĠĠĠ Ġ} Ċ }