Skip to content

rlxone/SolarNOAA

Repository files navigation

SolarNOAA

Calculation of local times of sunrise, solar noon, sunset, azimuth, elevation based on the calculation procedure by NOAA

Installation

CocoaPods

CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate SolarNOAA into your Xcode project using CocoaPods, specify it in your Podfile:

pod 'SolarNOAA', '~> 1.0.0'

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To integrate SolarNOAA into your Xcode project using Carthage, specify it in your Cartfile:

github "rlxone/SolarNOAA" ~> 1.0.0

Swift Package Manager

Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler.

Once you have your Swift package set up, adding SolarNOAA as a dependency is as easy as adding it to the dependencies value of your Package.swift.

dependencies: [
    .package(url: "https://github.com/rlxone/SolarNOAA.git", .upToNextMajor(from: "1.0.0"))
]

Requirements

  • iOS 9.0 / macOS 10.9 / tvOS 9.0 / watchOS 2.0
  • Swift 5

Usage

// Chicago coordinates
let latitude = 41.881832
let longitude = -87.623177
                
// Timezone for UTC-5
let timezone = -5
                
// Get current date
let date = Date()
var calendar = Calendar.current
calendar.timeZone = TimeZone(identifier: "UTC")!
                
let year = calendar.component(.year, from: date)
let month = calendar.component(.month, from: date)
let day = calendar.component(.day, from: date)
                
// Get sunrise and sunset in days
let sunriseDaysTime = Solar.sunrise(lat: latitude, lon: longitude, year: year, month: month, day: day, timezone: timezone, dlstime: 0)
let sunsetDaysTime = Solar.sunset(lat: latitude, lon: longitude, year: year, month: month, day: day, timezone: timezone, dlstime: 0)
                
// Get date from sunrise and sunset days value
let sunriseDate = Date(timeIntervalSince1970: sunriseDaysTime * 24 * 60 * 60)
let sunsetDate = Date(timeIntervalSince1970: sunsetDaysTime * 24 * 60 * 60)
                
let timeFormatter = DateFormatter()
timeFormatter.dateFormat = "HH:mm:ss"
timeFormatter.timeZone = TimeZone(identifier: "UTC")
                
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEEE, MMM d, yyyy"
dateFormatter.timeZone = TimeZone(identifier: "UTC")
                
print("Chicago sunrise for \(dateFormatter.string(from: date)): \(timeFormatter.string(from: sunriseDate))")
print("Chicago sunset for \(dateFormatter.string(from: date)): \(timeFormatter.string(from: sunsetDate))")

About

๐ŸŒž Calculation of local times of sunrise, solar noon, sunset, azimuth, elevation based on the calculation procedure by NOAA

Topics

Resources

License

Stars

Watchers

Forks