As NTP provided the number of seconds elapsed since January 1 1900, one can determine the date by dividing seconds into years, months, days, hours, minutes, seconds, etc.
The example code you have does the easy part, hours minutes and seconds, by taking the remainder after dividing seconds by days. It only pays attention to the remainder, because despite what the date is, the hours minutes and seconds are consistently offset from midnight.
To calculate the date, math get's a bit harder.
First, you need to compare the received NTP value to the previous NTP value to insure it is greater (>) and increment a counter if it is not.... This counter will track how many times NTP has rolled over (The first rollover will be in 2036.)
Next, divide NTP seconds into Days (86400 in a day) truncating the remainder as that is your hours, minutes and seconds.
After that, you want to divide days into years, accounting for leap years (once every 4 years !divisible by 100 except when divisible by 400)
If you get to the current year, you can then decide if it's a leap year or not, and then subtract 31,28(29),31,30,31,30,31,31,30,31,30,31 comparing each remaining value with the next months day value before hand, to determine what month you are in.
The remaining days is the day of the month.
It's not easy, but it is possible. Several libraries exist for this, GitHub - PaulStoffregen/Time: Time library for Arduino, for example.