MoonKit is a Swift package which uses math and trigonometry to compute several information about the Moon.
MoonKit only needs a location and the relative time zone to compute every Moon information.
Everything is computed locally, no internet connection is needed.
// Creating a CLLocation object with the coordinates you are interested in
let naplesLocation: CLLocation = .init(latitude: 40.84014, longitude: 14.25226)
// Timezone for the location of interest. It's highly recommended to initialize it via identifier
let timeZoneNaples: Timezone = .init(identifier: "Europe/Rome") ?? .current
// Creating the Moon instance which will store all the information you need about Moon events and her position
var myMoon: Moon = .init(location: naplesLocation, timeZone: timeZoneNaples)
// Creating a Date instance
let myDate: Date = Date() // Your current date
// Setting inside myMoon object the date of interest
myMoon.setDate(myDate)
// All the following informations are related to the given location for the date that has just been set
// Azimuth of the Moon
myMoon.azimuth
// Altitude of the Moon
myMoon.altitude
// Moonrise Date
myMoon.moonRise
// Moonset Date
myMoon.moonSet
// Current Moon Phase
myMoon.currentMoonPhase
// Moon Astrological sign
myMoon.moonSign
// To know all the information you can retrieve go to the **Features** section.
To properly show the Moon Date Events use the following DateFormatter.
//Creting a DateFormatter
let dateFormatter = DateFormatter()
//Properly setting his attributes
dateFormatter.locale = .current
dateFormatter.timeZone = timeZoneNaples // It shall be the same as the one used to initilize myMoon
dateFormatter.timeStyle = .full
dateFormatter.dateStyle = .full
//Printing Moon Date Events with the correct Timezone
print("Moonrise: \(dateFormatter.string(from: myMoon.moonRise))")
- Moon Azimuth
- Moon Altitude
- MoonRise Time
- MoonSet Time
- Moon Percentage
- Moon Phase
- Moon Astrological Sign
- MoonRise Azimuth
- MoonSet Azimuth
- Next Full Moon
- Next New Moon
- Celestial Calculations: A Gentle Introduction to Computational Astronomy: Link.
Take a look to the other Package, this time about the Sun: SunKit.