Pour ne pas se tromper sur l’écriture de la formule « bon anniversaire », il faut partir sur le genre du mot « anniversaire ». Anniversaire est un nom masculin : on dit « un anniversaire ». Dans la formule « bon anniversaire », « bon » ici est un adjectif qualificatif qui signifie heureux, joyeux. Comme tout adjectif, il s’accorde au genre et au nombre du nom qu’il qualifie.