Android app (and widget collection) that displays sunlight and moonlight times for a given location.
Displays sunrise and sunset, twilights (civil / nautical / astronomical), blue and golden hour, solstices and equinoxes, moonrise and moonset, moon phases and illumination.
Suntimes Alarms
An alarm clock for Suntimes.
Suntimes Calendars
A calendar provider add-on for Suntimes.
Solunar Periods
A hunting and fishing add-on for Suntimes.
Natural Hour
A 24-hour clock & roman timekeeping add-on for Suntimes.
Suntimes NFC
An NFC Addon for Suntimes Alarms; dismiss alarms with an NFC tag.
Interval Midpoints
A midpoint calculator add-on for Suntimes Alarms; schedule alarms for event midpoints.
The app:
- displays the current time (system time zone, custom time zone, or solar time)
- displays the time until the next rising/setting event.
- displays the sunrise and sunset, blue and golden hour, and twilight times (civil / nautical / astronomical).
- displays the current moon phase, illumination, moonrise, moonset, lunar noon, lunar midnight, apogee, perigee, and major phase dates.
- displays the current sunlight and moonlight projected over a world map (basic equirectangular, blue marble, or azimuthal maps).
- displays the solstices, equinoxes, and cross-quarter days, and notes the time until the next event.
- displays the sun's current position, and its position at sunrise, sunset, and noon.
- displays the moon's current position, and its position at moonrise and moonset.
- includes an Alarm Clock that can set a repeating alarm or notification for the next sunrise or sunset (or other rising/setting event).
- includes a "Quick Settings" tile that displays information as part of the settings tray.
- can display the configured location on a map (requires a map application) and configure the location from a map (using geo intent).
The app:
- does not require GPS. The location is manually specified by default (and optionally obtained from GPS).
- does not require network connectivity (or other unnecessary permissions). All calculations are performed locally on the device.
Widgets are (re)configurable:
- location (latitude, longitude, elevation).
- time zone (system / custom), sidereal time (lmst, gmst), or solar time (local mean time, apparent solar time).
- user-defined titles (supporting limited substitutions).
- misc. options: "use elevation", "show seconds", "show noon", and "show comparison", etc.
Widgets are themeable and provide:
- a theme editor and support for basic custom themes.
- a (default) dark theme (and dark w/ semi-transparent background).
- a (default) light theme (and light w/ transparent background).
Widgets are resizable and include...
Clock widgets:
- 1x1 digital clock widget that displays solar time (or a given timezone).
Date widgets:
- 1x1 date widget that displays the date with a given calendars (Chinese, Coptic, Ethiopian, Gregorian, Hebrew, Indian, Japanese, Julian, Korean, Minguo, Solar Hijiri, Thai Solar, or Vietnamese).
Sun widgets:
- 1x1 sun widget that displays the sunrise or sunset time.
- 1x1 sun widget that displays both sunrise and sunset times.
- 1x1 sun widget that flips between sunrise and sunset times.
- 2x1 and 3x1 sun widgets that displays the sunrise and sunset times, and the difference in daylight between today and tomorrow (or yesterday).
Moon widgets:
- 1x1 moon widget that displays moonrise and moonset.
- 1x1 moon widget that displays next major phase.
- 1x1 moon widget that displays phase and illumination (or phase only, or illumination only).
- 1x1 moon widget that displays the number of days since the new moon.
- 2x1 moon widget that displays moonrise and moonset, phase, and illumination.
- 3x1 moon widget that displays upcoming major moon phases.
Solstice widgets:
- 1x1 solstice widget that tracks the upcoming solstice, equinox, or cross-quarter day.
Position widgets:
- 1x1 sun position widget that tracks the sun's altitude and azimuth.
- 1x1 sun position widget that tracks the sun's declination and right ascension.
- 3x1 sun position widget that displays the lightmap graph, and tracks the sun's altitude and azimuth (current, sunrise/sunset, and at noon).
- 3x2 sun position widget that displays current sunlight and moonlight projected over a world map.
- 3x2 sun position widget that displays the sun's altitude as a line graph.
Additional screenshots can be found on the project wiki and in the gh-pages branch.
Suntimes does not collect, store, or transmit personal user data. It contains no advertising, no analytics, no trackers, and no unnecessary permissions. https://github.com/forrestguice/SuntimesWidget/wiki/Privacy
The app benefits from the following permissions...
Permission | Since Version | |
---|---|---|
ACCESS_COARSE_LOCATION | To get current location. | v0.1.0 |
ACCESS_FINE_LOCATION | To get current location (GPS). | v0.1.0 |
BOOT_COMPLETED | To restore active alarms when the device boots. | v0.11.0 |
POWER_OFF_ALARM | To wake the device from the power off state. | v0.14.0 |
READ_EXTERNAL_STORAGE | To play alarm sounds located on the SD card. | v0.11.5, v0.13.8 (api≤18) |
SET_ALARM | To interact with the system AlarmClock app. | v0.1.0 |
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS | To help ensure reliable delivery of alarms. | v0.14.11 |
WRITE_EXTERNAL_STORAGE | To export data (places, themes, etc.) to file. | v0.2.2 (api≤18) |
Version v0.13.8
removed READ_EXTERNAL_STORAGE for api≥19 (replaced with persistent URI permissions).
Version 0.9.*
contained the following additional permissions (removed in v0.10.0)...
Permission | Version | |
---|---|---|
READ_CALENDAR | To interact with the Calendar app (access events). | v0.9.0 |
WRITE_CALENDAR | To interact with the Calendar app (add/remove events). | v0.9.0 |
READ_SYNC_STATS | To interact with the Calendar app (access custom calendars). | v0.9.0 |
WRITE_SYNC_SETTINGS | To interact with the Calendar app (add/remove custom calendars). | v0.9.0 |
Do you find value in this software? Pay as you feel.
I want to express my thanks to those who have sent me something. This is greatly appreciated.
Use the issue tracker to submit a bug report or a feature request.
When reporting a bug please be detailed as possible. What did you expect the app to do, what did you actually observe? Include the app version number in your report. Other useful information includes the Android OS version (and sometimes your specific device model).
Copyright © 2014-2024 Forrest Guice
The source code is available under GPLv3 (https://github.com/forrestguice/SuntimesWidget).
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Icons and images from:
- "Google Android Design Icons 20131120" [Apache License 2.0]
- "Google Material Icons" [Apache License 2.0] (https://material.io/icons/)
- "Material Design Icons" [SIL Open Font License 1.1] (https://materialdesignicons.com)
- NASA Earth Observatory. "Blue Marble: Next Generation" [Public Domain] (https://visibleearth.nasa.gov/view_cat.php?categoryID=1484)
Libraries used:
- Time4A [Apache License 2.0] (http://github.com/MenoData/Time4A)
- ca.rmen.sunrisesunset [LGPL-2.1] (http://github.com/caarmen/SunriseSunset)
- sunrisesunsetlib-java [Apache License 2.0] (http://mikereedell.github.io/sunrisesunsetlib-java/)
- QuadFlask/colorpicker [Apache License 2.0] (https://github.com/QuadFlask/colorpicker)
- GravitySnapHelper [Apache License 2.0] (https://github.com/rubensousa/GravitySnapHelper)
German translation by Henrik "HerHde" Hüttemann, Wolkenschieber, xnumad, and CSTRSK.
Polish and Esperanto translations by Verdulo.
French translation by Jej, Aloha, ldmpub, and grenagit.
Hungarian translation by Erci.
Catalan and Spanish translations by Raulvo and gnusuari0.
Basque translation by beriain.
Norwegian translation by FTno.
Italian translation by Matteo Caoduro and GiovaGa.
Traditional Chinese translation by ft42, and James Liu.
Brazilian Portuguese translation by NetoSilva, Nelson A. de Oliveira, and Enrico S. B. Fraletti.
Russian translation by Ruslan Chintsov, and Adelechka.
Dutch translation by Joppla.
Czech translation by utaxiu.
Simplified Chinese translation by James Liu, and sr093906.
Contributions to the project are welcome.