I don't think there should really be a day where you don't have anything to say at the standup meeting. Every standup meeting should be used to let the rest of the team know whether or not you met the prior day's commitments.
One problem that I have seen on a lot of agile teams is that the developers don't make concrete commitments on a daily basis, so the daily stand-ups aren't all that effective. If that is an issue, make sure everyone in attendance is setting out concrete goals on a daily basis that can objectively be communicated the next day as either done or not done.
To the rest of your question, I think it is perfectly acceptable to go into a daily stand-up and say that you didn't meet the prior day's objective because you had an off day and use the meeting as an opportunity to make new commitments. If there was a reason why you had an off day that could be clearly identified as an impediment (e.g. too many interruption, unclear requirements/objectives, dev environment frustrations), those reasons should be reported to the whomever is leading the stand-ups (scrum master) because it is their responsibility to make sure those impediments are addressed.