[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Sunrise and Sunset from terminal



On Sun, Sep 24, 2023 at 12:35:18AM +0000, Andy Smith wrote:
> $ curl -s 'https://api.sunrise-sunset.org/json?lat=51.509865&lng=-0.118092&formatted=0' | jq .
> {
>   "results": {
>     "sunrise": "2023-09-24T05:47:54+00:00",
>     "sunset": "2023-09-24T17:57:14+00:00",
>     "solar_noon": "2023-09-24T11:52:34+00:00",
>     "day_length": 43760,
>     "civil_twilight_begin": "2023-09-24T05:16:19+00:00",
>     "civil_twilight_end": "2023-09-24T18:28:49+00:00",
>     "nautical_twilight_begin": "2023-09-24T04:37:02+00:00",
>     "nautical_twilight_end": "2023-09-24T19:08:06+00:00",
>     "astronomical_twilight_begin": "2023-09-24T03:56:14+00:00",
>     "astronomical_twilight_end": "2023-09-24T19:48:54+00:00"
>   },
>   "status": "OK"
> }
> 
> The documentation is here:
> 
>     https://sunrise-sunset.org/api

Yes, that's pretty reasonable.  The times are given in UTC, so they
must be converted.  Fortunately, GNU date can do that for us.

As a one-liner:

unicorn:~$ curl -s 'https://api.sunrise-sunset.org/json?lat=41.4483&lng=-82.1689&formatted=0' | jq -r .results.sunrise,.results.sunset | { read -r sunrise; read -r sunset; date "+Sunrise: %R" -d "$sunrise"; date "+Sunset: %R" -d "$sunset"; }
Sunrise: 07:16
Sunset: 19:24

As a script:

#!/bin/sh
lat=41.4483
lng=-82.1689
curl -s "https://api.sunrise-sunset.org/json?lat=$lat&lng=$lng&formatted=0"; |
  jq -r .results.sunrise,.results.sunset | {
    read -r sunrise
    read -r sunset
    date "+Sunrise: %R" -d "$sunrise"
    date "+Sunset: %R" -d "$sunset"
  }


Reply to: