Your function seems to be accurate, but... this:
Code:
this.GetSunTimes(sa.NavController.GetLatitude(), sa.NavController.GetLongitude(), out sdt, out edt);
does not appear to work.
Specifically sa.NavController.GetLatitude() and sa.NavController.GetLongitude().
I am not sure what it is returning, but it is definitely not the correct Lat and Long (I checked your function against weather.com lat and long for my location and it worked fine).
Chuck... any thoughts? What are these functions returning? Is it something other than the standard lat and long we are used to?