The program runs successfully, but once the prompt for the user to re-run the program again at the end using the while loop that encapsulates the entire program it throws a NoSu
Closing (e.g. scanDate.close();) the Scanner closes the underlying stream (System.in) also. You should not do that when you are not yet done with reading from the stream.