Accord de « demi » devant un nom
La réponsePlacé devant un nom et relié par un trait d'union, demi reste invariable : ni féminin, ni pluriel, quel que soit le nom qui suit.
Devant le nom, demi ne change jamais. Après le nom (« deux heures et demie »), il s'accorde en genre.
« Demi- » reste invariable, relié par un trait d'union, quel que soit le genre ou le nombre du nom.
« une demi-heure », « des demi-tarifs »
Quand « demi » suit le nom (introduit par « et »), il s'accorde en genre avec ce nom, mais reste au singulier.
« deux heures et demie », « trois kilos et demi »
Elle a fait une demi-journée ce vendredi.
Devant le nom : invariable.
Il est deux heures et demie.
Après le nom féminin « heures » : demie.
Il a pris deux demies-journées.
Devant le nom, « demi » reste invariable : « deux demi-journées ».
Sources : Dictionnaire de l'Académie française (9ᵉ éd.) · Le Bon Usage (Grevisse).