Typical crystals have accuracy specs of 50-100 parts-per-million. You can do the calculations, but I believe that's in the ballpark of 1 minute out of 10 days. If you buy from a reputable manufacture, that's going to be a worst-case spec (as long as you stay within the specified temperature range).
If that's not good enough, I assume there are ways of "trimming" the oscillation frequency (with capacitors?). I'm pretty sure my watch (and RTC modules) are better than 50 ppm, so either they are buying super-good crystals or they are trimming.
Or, you could make timing corrections in software (if it's running consistently-fast or consistently-slow). The problem with tweaking/correcting clock speed is that you need a (accurate/calibrated) frequency counter to check the frequency if you don't want to take several weeks testing & adjusting the time-drift.
Standard C/C++ has [u]clock/time[/u] functions but I don't know if that's part of the Arduino C++ library.