With the consumption of the resources, it’s important to develop clean solar energy that can solve the problem of energy shortage. Obtaining an accurate position of the sun is the premise of using the solar energy efficiently. An accurate solar position includes two factors that are elevation and azimuth. In the paper, Joseph J. Michalsky’s algorithm for calculation of the solar position is verified that is taken from the American Astronomical Almanac. The algorithm has been written into program by Joseph J. Michalsky in FORTRAN. In the paper, it’s has been adapted to visual C++ that can calculate the solar elevation and azimuth and errors or some places that less accurate are corrected. The Chinese Astronomical Almanac for the year 1985 doesn’t tabulate elevation and azimuth. The quantities needed to calculate elevation and azimuth are the right ascension, the declination and the Greenwich mean sidereal time that are tabulated in the Almanac. Comparing those variables that calculated from the algorithm with the data from the Chinese Astronomical Almanac for the year 1985, it can be found that the biggest difference of the two ways is only 0.01°, 0.01° and 0.0001h respectively, which prove the accuracy of the algorithm indirectly. The measured data that only include elevation comes from Basic Data of Geography in China written by Institute of Geography, Chinese Academy of Sciences. Comparing elevation given by the algorithm with the measured data, it shows that the algorithm can be accurate calculating the position of the sun in some extent. And the paper shows in detail the conversion from the local real solar time to Universal Time because the time in Basic Data of Geography in China is the local real solar time. Finally we notice that the 0.01° accuracy mentioned by other paper is not the accuracy of the elevation and azimuth of the sun, but the accuracy of the right ascension and declination. It’s easy to understand why the difference of the results calculated by the algorithm and measured data is greater than 0.01°.