It's a pain in the ass.
Stop now.
If you want to look at what I did in 1.7.10 (which involved heavy use of things that shant be talked about) you can have a look at my event handler class:
https://github.com/Draco18s/HarderStuff/blob/master/src/main/java/com/draco18s/wildlife/WildlifeEventHandler.java
Roughly:
1) store the original biome data, we need to keep records of what they are so we can calculate time offsets properly
2) modify the shit out of these numbers because some of them are garbage. We also need to calculate the variance delta (deserts have greater temperature variance than oceans because of water's thermal capacity)
3) get the current date, look up the seasonal sine waves, multiply by variance delta, add to the base value, apply back to the biome
It's ugly and there's hacks all over the place. One of the most annoying was having to deal with ice. Ice doesn't melt on its own, but water will freeze. Have fun handling that.