/AIRAC.jl

Julia library to deal with AIRAC cycle dates

Primary LanguageJuliaMIT LicenseMIT

AIRAC

Stable Dev Build Status Coverage

Regular, planned Aeronautical Information Publications (AIP) as defined by the International Civil Aviation Organization (ICAO) are published and become effective at fixed dates.

AIRAC cycle definition as published in the ICAO Aeronautical Information Services Manual (DOC 8126; AN/872; 6th Edition; 2003). Test cases validate documented dates from 2003 until 2022. They also assert that the rare cases of a 14th cycle, e. g. in the years 2020 and 2043 are correctly handled.

https://en.wikipedia.org/wiki/Aeronautical_Information_Publication

This project provides a Julia library to deal with AIRAC cycle dates.

This project is not maintained by ICAO. Please use this project at your own risk.

Installation

AIRAC.jl is not currently a Julia registered package.

Currently only developer version is available. It can be installed by running Julia REPL:

$ julia
julia> ]
(@v1.5) pkg> dev https://github.com/scls19fr/AIRAC.jl

Usage

Airac struct

Get current AIRAC cycle

julia> using AIRAC

julia> airac = Airac()
Airac(2101, 2021-01-28)

Get first AIRAC cycle of a given year

julia> Airac(2021)
Airac(2101, 2021-01-28)

Get properties of an AIRAC cycle

julia> airac.date
2021-01-28

julia> airac.ident
2101

julia> airac.year
2021

Iterating over AIRAC cycle

julia> airac = Airac(2021)

julia> airac + AiracDiff()
Airac(2102, 2021-02-25)

julia> airac + AiracDiff(12)
Airac(2113, 2021-12-30)

julia> airac - AiracDiff()
Airac(2014, 2020-12-31)

Showing all cycle dates of a given year

julia> using AIRAC: airac_cycle_dates

julia> Airac.(airac_cycle_dates(2021))
13-element Array{Airac,1}:
 Airac(2101, 2021-01-28)
 Airac(2102, 2021-02-25)
 Airac(2103, 2021-03-25)
 Airac(2104, 2021-04-22)
 Airac(2105, 2021-05-20)
 Airac(2106, 2021-06-17)
 Airac(2107, 2021-07-15)
 Airac(2108, 2021-08-12)
 Airac(2109, 2021-09-09)
 Airac(2110, 2021-10-07)
 Airac(2111, 2021-11-04)
 Airac(2112, 2021-12-02)
 Airac(2113, 2021-12-30)

Parsing an AIRAC ident string

julia> parse(Airac, "1913")
Airac(1913, 2019-12-05)

More informations

More informations can be found by watching at code: