case "$(uname -s)" in
Linux)
  date_to_epochdays() {
    [ "${1}" ] || return 1
    echo $(( $(date +%s -d "${1}") / 86400 ))
  }
  epochdays_to_date() {
    [ "${1}" ] || return 1
    date -d "1970-01-01 $(( ${1} * 86400 )) sec" +%Y-%m-%d
  }
  ;;
FreeBSD)
  date_to_epochdays() {
    [ "${1}" ] || return 1
    echo $(( $(date -j -f %Y-%m-%d "%{1}" +%s) / 86400 ))
  }
  epochdays_to_date() {
    [ "${1}" ] || return 1
    date -jr $(( ${1} * 86400 )) +%Y-%m-%d
  }
  ;;
esac