My recommendation is to wait until June 1st if you're gonna buy it at the end of a month. Sounds stupid, but the dealer can use the sale and credit it towards the previous months sale to make the numbers look better. (I know it screws up the upcoming month, but they do it. They're dumb)
I spent over 4 1/2 hours at the dealership the day I bought mine, but I also got over $5000 off what the dealer wanted on the price. Be very patient, and if you like to read, bring a book or a mag with you. Don't let their waiting game get to you, and be prepared to walk out if you can't get the ~18k price. Don't sign anything, no matter what they say, until you see the price you want on the paper. I started walking out of the dealership at least 3 times before they finally gave in to the price I wanted to pay. Pisses them off, and they'll try and tell you how much of a favor they are doing for you, but they're full of crap. They want the sale and your money. Once you leave, they couldn't care less about you. (just another fact you need to recognize)
I bought mine on the first of the month. I paid within $100 of what I was going to, and it was actually less than I was planning on.
Best of luck, and don't forget to tke a candy bar or two and a coke with your magazine if you really want it.
I actually acted like I wanted the miata sitting on the lot, but went over to the MP3 and started asking questions about it like I didn't know what it was. Once I realized the salesman had no idea what he was selling, I took a test drive and started playing like I'd take it if the money was right, but I still really wanted the Miata. Confused them, but it worked.

Have fun!