-mtime 183 is for files whose age rounded up to the next 24-hour period is equal to 183, so for ages comprised between 182*24*3600 seconds (exclusive) and 183*24*3600 seconds (inclusive) (where seconds are Unix seconds, that is have a variable duration that is the 86400th part of the earth day, not the fixed duration ISO definition of the second. So all days are 86400 seconds, we don't need to account for leap seconds).
-mtime +183, you get files whose age rounded up to the next 24 hour period is strictly greater than 183, so that for ages strictly greater than 183*24*3600 seconds.
Note that 24 hour period is not necessarily the same as day because of daylight saving time switches in some regions.
find implementations (FreeBSD, GNU), you can also use
! -newermt '6 months ago'.
mt compares the
modification time with the
time given as argument.
That will give files modified before the same day of the month, same hour 6 months ago, but in the case of GNU
find (as opposed to FreeBSD) it doesn't do the DST adjustment (in timezones where DST applies), that is it gives you the information as if in a UTC timezone. If now is 2016-07-01 13:00 (summer time), FreeBSD
find would report files last modified before 2016-01-01 13:00 (winter time), while GNU
find would report files last modified before 2016-01-01 12:00 (winter time). There might be variations as well when called on the 29th, 30th or 31st of the month and the month 6 months ago has no such date.