This seems simple but is actually a very interesting question. The first thing that you have to decide upon is your definition of when the sun is rising. Is it when the middle of the Sun crosses the horizon, or the top edge, or the bottom edge. Also do you take the horizon to be sea level or do you take into account the topography of the location you are at. The Earth's atmosphere can also have an effect, refracting (or bending) the light so that the Sun appears to rise a few moments earlier/later than it would if there were no atmosphere. The US Naval Observatory define sunrise/sunset as follows (in their FAQ):
"Sunrise and sunset conventionally refer to the times when the upper edge of the disk of the Sun is on the horizon, considered unobstructed relative to the location of interest. Atmospheric conditions are assumed to be average, and the location is in a level region on the Earth's surface."
As the Earth rotates about its axis celestial objects appear to rise and set. Objects at declination zero (or directly "above" the Earth's equator (see our explanation of right ascension and declination) are up for twelve hours and down for twelve hours. When the Sun is at declination zero (at the vernal and autumnal equinoxes) it is therefore up for twelve hours and and down for twelve hours. The point at which is it at its highest (when it crosses the meridion) is defined to be local noon. For observers that are in the northern hemisphere, objects that are north of the celestial equator are up for longer than twelve hours (to the point that some are circumpolar and never set). Objects south of the celestial equator are up for less than twelve hours (some never rise). In winter (in the Northern hemisphere) the Sun is south of the celestial equator so is up for less than twelve hours - the exact length of time depends on its exact declination. Local noon is still the time when it reaches it's highest point.
Diagram of the path of objects in the sky above Ithaca, NY. (Credit: Cornell Astro201 page)
So, using local time it is theoretically easy to figure out when the Sun rises. You work out its declination from the time of the year it is. Then you work out how long an object at that declination is up in the sky for give your lattitude on Earth. Then you subtract approximately half (see first paragraph for why approximately) of that time from local noon to find the local time at which the sun rises. Of course we don't use local time - we have time zones in which the time is defined to be the same for a certain area of the Earth. Only in the exact centre of that time zone is the time equal to local time. So you also need to know your longitude to know the difference between your local time and the time you use on your watch.
Actually it gets more complicated than that, and if you want to know in more detail, the US Naval Observatory has some recommended reading . They also have on-line programs to figure out the times for you which is very handy.
This page was last updated on June 27, 2015.