I use a Garmin Edge 200. Actually use 2 since they were only $60, I haven't exceeded the battery life yet as it seems to be around 15-16 hours but I plan to use one until the battery is close to dead and then switch to the other while the first charges from a battery pack in my frame bag; for the 400k and 600k rides I have planned.
Previously I did this with my iphone and it worked great. Practice runs with the garmins have also worked pretty well. I've been using them in rain and mud for almost a year and they just seem to work.