If I am understanding your question correctly you want to add an amount of hours to the end-time.
You can do that with the following command:
futureDate=$(date -d "+2 hours")
The -d option is quite versitile and powerful. It allows you to enter a very human-readable command, like "-5 days", "+3 months", "9 days ago".
To get user input, use the read command:
read startDate duration
By default the read command will read a single line from the standard input (usually the keyboard). The first word the user enters will be assigned to the first variable name, the second word to the second variable name, and so forth. If the user entered more words than the amount of variables you supplied, all the remaining words will be assigned to the last variable.
An example:
read var1 var2 var3 var4
User-input:
The quick brown fox jumps over the lazy dog.
Result:
var1 = The
var2 = quick
var3 = brown
var4 = fox jumps over the lazy dog.
You can add an instruction-message to your read command to inform the user what you expect by using the -p option:
read -p 'Enter the start date and the duration: ' startDate duration