the best and simplest solution is to use DateTime.Now.ToString(); as the id, format accordingly so that you get yyyymmdd hhmmss it will do the date today, plus the hour minutes and seconds. That way you will know it will be unique regardless and you dont need to bulk your code with alot of checks and loops :)
where are you saveing the info? on a sql server or is this just through code? if its through code you could get the list see the numbers with the current date and from that get the numbers and increment accordingly:
so if you have
as you can see when i have pulled that from where your saving be it from a list you can split its value to:
say todays date it 2013/01/01 and you have two records as todays date, get the values that you need, in this cas 1 and 2 itterate in a for loop and you would know you need to add +1 to that value so the next value is:
20130101 3 what == 201301013
That ways you know its unique as you only get the date once in that year so you just need to check that the number in that day is unique by going through the list (for loop) have the numbering in accesinding order 012345... ect. Then add a number on top so in your for loop you should have a varible that is constantly increamenting.. just +1 to it ;) and add it to the current date.
if its through sql its even easier ;) just get the list from a stored procedure, query the list get the values and increment, or better yet have the todaysdate + sql needs a unique column for secondry or primary so you could use that ;).
hope it helps !