Version b) sounds more natural. The first one is weird and could imply that you don't have a haircut today... maybe a bad hair day or something.
Anyway, the most idiomatic sentence in my opinion is this:

I've never heard a) used, and I understood "Haarschnitt" to mean something more akin to "hairstyle, haircut" rather than the action of your hair being cut. Just from "feeling" I want to say a) is just plain wrong, but I'm not a native speaker, so I'm perhaps not the best authority.

b) is grammatically correct and you can definitely use it.

As others have mentioned (Lumi, Emanuel), your third option (and the one I've most often heard used) is

Ich war gestern beim Friseur.

which translated means "I was at the barber's/hairdresser's yesterday." It implies you had your hair cut and that's what most people understand the sentence to mean.