perché fai il confronto con i millisecondi e non sulle date?
Il metodo setMonth() restituisce un numero in millisecondi, per cui ho trovato comodo fare il confronto con i relativi timestamp usando il getTime().
Ma in effetti, come hai accennato tu stesso, è anche possibile eseguire il confronto direttamente tra due oggetti date.