Okay, after some research, I believe I have figured out your problem, and that's the Berry Glitch.
When your game starts, it sets the RTC (Real Time Clock), and the set date is always January 1st, 2000. Each day, month, year, etc. is counted from there instead of having an in-game calender. However, after one year has passed, all time-based events freeze for another year. This occurs with all events that happen once a day (the Berry master, lottery tickets, etc.) However, this part in particular may be what you're looking for:
Cartridges that have had their battery replaced may also experience similar problems. When the supply of power from the battery is interrupted, the RTC is reset to January 1, 2000. As with the Berry glitch, this reset causes all scheduled calendar-based events to be frozen until the RTC reaches the expected value, which may take many years. This can be solved by starting a new game, or (with additional hardware) by altering the timestamp stored in the save file so it is lower than the RTC value, or by setting the RTC forward so it is greater than the save file timestamp.
The only way to fix this glitch without outside devices is if you start a new game, then link two gameboys together, one with LeafGreen, FireRed or Emerald in it, and one with your Ruby in it. Follow these instructions:
- Load FireRed, LeafGreen, or Emerald until the title screen is displayed.
- Press the Select and B buttons. After the new screen loads, press A.
- Insert the Link Cable so that the system that the FireRed, LeafGreen or Emerald game is connected to the Player 1 cable port and the Ruby or Sapphire game is connected to the Player 2 port. Once this is done, press A.
- Turn on the device with Ruby or Sapphire while holding the Start and Select buttons.
- Refer to the FireRed, LeafGreen or Emerald game display for further instructions. The patch should be transferred at this time.
For more information, please click here: http://bulbapedia.bulbagarden.net/wiki/Berry_glitch
I hope I helped!