Despite my comment, I decided to attempt an answer.
Ok, so a Pokemon needs a happiness stat of 220 to evolve (255 is max Happiness, if you are interested).
When you catch it, assuming you use a regular pokeball, then Zubat will start with 70 happiness.
Assuming you just rare candy it to level 22, when it evolves it will have 121 happiness. I say Rare Candy it, because then you will not be taking steps, and so the only happiness it will gain will be from level.
Now if you walk 25,344 steps, and then level Golbat up 1 level it will evolve. Alternatively, Rare Candy it to level 59 and it will evolve (again Rare Candy so you aren't raising its happiness by walking). Realistically you will use a combination of these methods, so it should be less than either number.
This assumes you never use it in a battle against Gym Leaders, Elite 4, or the Champion, as that increases happiness, that it never faints, and that once it hits level 22 it doesn't gain another level.
You can decrease the amount of time needed by catching it in a Friend or Luxury Ball, or making it hold a Soothe Bell. As you mentioned in the question, vitamins, massages, and hair cuts (depending on your game) will make it evolve sooner. This is what everyone meant by so many variables, so your Zubat will probably take less than that amount of steps to become a Crobat, simply because you will probably level him up some when you're walking around with him, or will do something else to boost happiness, so this is only accurate if you follow the exact conditions I used when calculating it.