Advertisement
Guest User

Untitled

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