cron skips jobs if it isn't running at the time that they are scheduled.
However, if you have anacron installed, then daily, weekly and monthly jobs are run "at the specified intervals as closely as machine uptime permits".
/etc/crontab, you should see references to anacron. This logic uses anacron for regular jobs, but only if anacron is installed. anacron is installed by default on Ubuntu Desktop, but not on Server, since servers are generally expected to be on 24/7. But you can install anacron on Ubuntu Server if you want the same behaviour there, and it should work as expected.