Advertisement
Guest User

Untitled

a guest
Aug 27th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 2.88 KB | None | 0 0
  1. (define (next-event [search ""])
  2.   (let ([event
  3.          (if (non-empty-string? search)
  4.            (query-maybe-row db "SELECT date, description FROM events
  5.                                WHERE date > datetime(\"now\")
  6.                                AND description LIKE $1
  7.                                LIMIT 1"
  8.                                (string-append "%" search "%"))
  9.            (query-maybe-row db "SELECT date, description FROM events
  10.                                WHERE date > datetime(\"now\")
  11.                                LIMIT 1"))])
  12.       (if event
  13.         (let ([delta (period-between (now/utc)
  14.                                      (sql-datetime->datetime (vector-ref event 0)))]
  15.               [time (sql-datetime->datetime (vector-ref event 0))]
  16.               [hour (number->string (->hours (sql-datetime->datetime (vector-ref event 0))))]
  17.               [minute (number->string (->minutes (sql-datetime->datetime (vector-ref event 0))))]
  18.               [days (number->string (period-ref (period-between (now/utc)
  19.                                                                 (sql-datetime->datetime (vector-ref event 0)))
  20.                                                 'days))]
  21.               [hours (number->string (period-ref (period-between (now/utc)
  22.                                                                  (sql-datetime->datetime (vector-ref event 0)))
  23.                                                  'hours))]
  24.               [minutes (number->string (period-ref (period-between (now/utc)
  25.                                                                    (sql-datetime->datetime (vector-ref event 0)))
  26.                                                  'minutes))]
  27.               [description (vector-ref event 1)]
  28.               [wday (cond
  29.                       [(monday? (sql-datetime->datetime (vector-ref event 0))) "Monday"]
  30.                       [(tuesday? (sql-datetime->datetime (vector-ref event 0))) "Tuesday"]
  31.                       [(wednesday? (sql-datetime->datetime (vector-ref event 0))) "Wednesday"]
  32.                       [(thursday? (sql-datetime->datetime (vector-ref event 0))) "Thursday"]
  33.                       [(friday? (sql-datetime->datetime (vector-ref event 0))) "Friday"]
  34.                       [(saturday? (sql-datetime->datetime (vector-ref event 0))) "Saturday"]
  35.                       [(sunday? (sql-datetime->datetime (vector-ref event 0))) "Sunday"])])
  36.           (format "~a ~a:~a UTC | ~a | ~a day(s), ~a hour(s), ~a minute(s)"
  37.                   wday
  38.                   (if (eq? (string-length hour) 2)
  39.                     hour
  40.                     (string-append "0" hour))
  41.                   (if (eq? (string-length minute) 2)
  42.                     minute
  43.                     (string-append "0" minute))
  44.                   description
  45.                   days
  46.                   hours
  47.                   minutes))
  48.         "No event found.")))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement