@@ -207,26 +207,28 @@ impl Calendar for Ethiopian {
207207 }
208208
209209 fn year_info ( & self , date : & Self :: DateInner ) -> Self :: Year {
210- let coptic_year = date. 0 . 0 . year ( ) ;
210+ let coptic_year = Coptic . year_info ( & date. 0 ) ;
211211 let extended_year = if self . 0 == EthiopianEraStyle :: AmeteAlem {
212- coptic_year - AMETE_ALEM_OFFSET
212+ coptic_year. extended_year - AMETE_ALEM_OFFSET
213213 } else {
214- coptic_year - AMETE_MIHRET_OFFSET
214+ coptic_year. extended_year - AMETE_MIHRET_OFFSET
215215 } ;
216216
217217 if self . 0 == EthiopianEraStyle :: AmeteAlem || extended_year <= 0 {
218218 types:: EraYear {
219219 era : tinystr ! ( 16 , "aa" ) ,
220220 era_index : Some ( 0 ) ,
221- year : coptic_year - AMETE_ALEM_OFFSET ,
221+ year : coptic_year. year - AMETE_ALEM_OFFSET ,
222+ related_gregorian : coptic_year. related_gregorian ,
222223 extended_year,
223224 ambiguity : types:: YearAmbiguity :: CenturyRequired ,
224225 }
225226 } else {
226227 types:: EraYear {
227228 era : tinystr ! ( 16 , "am" ) ,
228229 era_index : Some ( 1 ) ,
229- year : coptic_year - AMETE_MIHRET_OFFSET ,
230+ year : coptic_year. year - AMETE_MIHRET_OFFSET ,
231+ related_gregorian : coptic_year. related_gregorian ,
230232 extended_year,
231233 ambiguity : types:: YearAmbiguity :: CenturyRequired ,
232234 }
@@ -390,4 +392,41 @@ mod test {
390392 1
391393 ) ;
392394 }
395+
396+ #[ test]
397+ fn related_gregorian ( ) {
398+ assert_eq ! (
399+ Date :: try_new_gregorian( 2025 , 8 , 18 )
400+ . unwrap( )
401+ . to_calendar( Ethiopian :: new( ) )
402+ . era_year( )
403+ . related_gregorian,
404+ 2024
405+ ) ;
406+ assert_eq ! (
407+ Date :: try_new_gregorian( 2025 , 9 , 18 )
408+ . unwrap( )
409+ . to_calendar( Ethiopian :: new( ) )
410+ . era_year( )
411+ . related_gregorian,
412+ 2025
413+ ) ;
414+
415+ // By 16702 the Ethiopian calendar is a full year ahead
416+ // of the Gregorian calendar
417+ assert_eq ! (
418+ Date :: try_new_ethiopian( EthiopianEraStyle :: AmeteMihret , 16695 , 1 , 1 )
419+ . unwrap( )
420+ . era_year( )
421+ . related_gregorian,
422+ 16702
423+ ) ;
424+ assert_eq ! (
425+ Date :: try_new_ethiopian( EthiopianEraStyle :: AmeteMihret , 16696 , 1 , 1 )
426+ . unwrap( )
427+ . era_year( )
428+ . related_gregorian,
429+ 16704
430+ ) ;
431+ }
393432}
0 commit comments