Swiftpack.co - rlxone/SolarNOAA as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by rlxone.
rlxone/SolarNOAA 1.0.0
🌞 Calculation of local times of sunrise, solar noon, sunset, azimuth, elevation based on the calculation procedure by NOAA
⭐️ 26
🕓 2 years ago
iOS macOS watchOS tvOS
.package(url: "https://github.com/rlxone/SolarNOAA.git", from: "1.0.0")

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))")

GitHub

link
Stars: 26
Last commit: 2 years ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

Release Notes

v1.0 Release
2 years ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics