#! /bin/sh

time=false
dbg=false

while case "$1" in
		-d)	dbg=:
			shift
			;;
		-t)	time=:
			timescale=$2
			shift; shift
			:
			;;
		*)	false
			;;
	esac
do :; done

case $# in
	4)	;;
	*)	echo "Usage: $0 val1 val2 time endval" 1>&2
		exit 1
		;;
esac

if $time; then
	case "$timescale" in
		m)	timescale=60;;
		h)	timescale=3600;;
		d)	timescale=86400;;
	esac
fi

if $dbg; then
	echo "val1=$1"
	echo "val2=$2"
	echo "time=$3"
	echo "target=$4"
	exec 3>&1
fi
if $time; then
	(echo "int(( (($4) - ($2)) * ($timescale) / ((($2) - ($1)) / ($3)) ) +"; date +%s; echo ")") |
	  if $dbg; then
		tee /dev/fd/3 | calc -q | tee /dev/fd/3
	  else
		calc -q
	  fi |
	  sed -e 's/^_[0-9]*_//' |
	  xargs -kX date -r X '+%Y-%m-%d %H:%M:%S'
else
	echo "($4 - $2) / (($2 - $1) / $3)" | calc -q
fi
