[HTC One S] TheEndHK:
Almost all of em are running on custom roms I beat and I'm the one you said that with 5 - 7 hours screen time everyday. There are many things to do to maximum the battery performance and first thing is root and unlock your phone and flash a custom rom. If you are on stock rom, it would be almost a no go.

1. Flash ViperOneS 1.2 rom or One maximuS V2.5 rom, they are the best sense based rom with the greatest battery performance I've seen.

2. If you don't need sense, flash cm10 or aokp. They should give you more battery because they aren't as resources hog as sense. However, you couldn't use sense UI and access to the dedicated image chip in camera.

3. Turn the brightness level down to as low as possible, this is the major battery killer.

4. Switch to 2G when you are in standby mode. Disable fast dormancy, it will save you battery in standby mode at the cost of connection speed when you surf web it will be slower but it does save you some battery in standby status. You can disable it in ViperOneS's tweaking but you'll have to do it manually in all other roms but that is very very easy. Personally, I let it on because the 3G speed isn't good in Hong Kong, too many iphone/android everywhere here, over crowed. In every street in HK are messed up by SGS3/Note/Note2/Iphone, think about how horrible it is.

http://xdaforums.com/showthread.php?t=1684604

5. Turn off wifi when you don't use it, disable max performance in wifi setting. Turn the auto-sync off when you don't need it too.

6. Just remove all apps and bloatware you don't want. When you flash ViperOneS/maximuS 's add-on, you will have a list to do it.

7. Some bloatware will still be there after flash the add-on. You have to download systemapp remover to del those apps.

8. Some apps like to run as services mode and they drain battery in background like youtube, google map, playstore. You need to download AutoStarts and force them to disable as an auto-startup services after bootup.

9. Download Systempanel and check any non-system apps running at services mode in background. Force them stop in control panel. I only have four non-system apps let them running as services like whatsapp.

10. Don't run too many widgets, I only have two widgets on. Don't use 3D wallpaper.

11. Use opera mobile to surf web. The stock browser and chrome should faster but sometimes they drain battery real quick.

12. Turn the cpu mhz down when you are just doing some normal/easy works because the stock kernel has very suck governor performance(only ages governor: on-demand, save battery, max performance) and drains battery fast. Turn the cpu mhz back to high level only when you play games, this will save you great battery. Don't worry S4 CPU is still very powerful even you set it to half speed. You can flash custom kernel if you don't like to turn cpu speed up/down, they introduce more efficiency governors to handle it automatically but all 3rd kernels are likely to have some bugs at this time. There aren't many active developers out there.

13. After a heavy or long using like a full battery cycle, reboot the OS to clean up the cache/memory leak.

14. Use nova launcher or apex launcher to replace the sense launcher.

Well, I basically do ALL the stuffs above and got 5 ~ 7hrs screen time. Today, I do surf the web like mad(4hrs), 1hr 720p movie(software decode in MX Player as it's a rmvb movie), 30mins+ music with poweramp. Guess what? I got exactly 5hrs screen time and 1% battery left when I get back to home, very lucky though. I think my usage is a bit high today, normally I have 6hrs screen time average.