Yeah, I've found the best way to improve date quality is to touch them (You can buy presents but you don't need to so long as you go to a date spot with enough action points/turns). Each of them has places they like to be touched and places they don't. Touching them in the wrong place will upset them, so try to avoid it for a perfect date.
For example, right now I'm aiming for Tocchan's route. I take him to the flower shop because he enjoys it but it's also cheap (It only costs 500 to go to, so I still have money left for rent) and it gives enough action points for a perfect date. For Tocchan I touch his hand 5 times and the Smiley gets heart-eyes, meaning I got a perfect date.
Basically just make a save before a date with your crush and experiment with what they like. If you get it wrong or want to see what other things they like, just reload the save.