I have computer connected to internet directly. But once every hour IP changes and I do not want that for sure. How can I set IP lease time for like a year or so?
You don't control this. Lease time is set by the DHCP servers of your ISP.
You can try calling them and asking for a static address. Some ISPs will accommodate you for a small fee.
What is your operating system? What is your network configuration settings? If you put the router back between the computer and the modem do you have an IP which lasts longer than an hour?
This is really odd, the only thing I can think of is if for some reason your computer was releasing and renewing with a new IP address every hour. You can do this by ipconfig /release and /renew. Check if releasing and renewing gives you a new IP on demand. It does then it's a configuration issue on your computer, just stick the router back in front and you will be fine (as the release renew will get intercepted by the local DHCP server).