You can use PlanetaryMoonData:
PlanetaryMoonData["Moon"]["RiseTime", "Date" -> DateObject[{2016, 9, 28}]]
(* DateObject[{2016, 9, 28, 4, 8}, "Minute", "Gregorian", 2.] *)
PlanetaryMoonData["Moon"]["SetTime", "Date" -> DateObject[{2016, 9, 28}]]
(* DateObject[{2016, 9, 28, 17, 46}, "Minute", "Gregorian", 2.] *)
or an older function AstronomicalData, which was superseded in version 10:
AstronomicalData["Moon", {"NextRiseTime", DateObject[{2016, 9, 28}]}]
(* DateObject[{2016, 9, 28, 3, 6, 9.06516}, "Instant", "Gregorian", 1.] *)
AstronomicalData["Moon", {"NextSetTime", DateObject[{2016, 9, 28}]}]
(* DateObject[{2016, 9, 28, 16, 43, 52.872}, "Instant", "Gregorian", 1.] *)
Two remarks: (i) AstronomicalData seems to give a result with finer granularity. (ii) The slight discrepancy in the results can be resolved by explicitly providing the location.
PlanetaryMoonData["Moon"]["RiseTime", {"Date" -> DateObject[{2016, 9, 28}],
"Location" -> GeoPosition[{46, 15}]}]
(* DateObject[{2016, 9, 28, 4, 6}, "Minute", "Gregorian", 2.] *)
AstronomicalData["Moon", {"NextRiseTime", DateObject[{2016, 9, 28}], {46, 15}}]
(* DateObject[{2016, 9, 28, 3, 6, 16.2692}, "Instant", "Gregorian", 1.]*)
{x -> 29.1625}– Kuba Sep 28 '16 at 08:33mp[x_?NumberQ] := MoonPosition[DateObject[{2016, 9, 28, x}]][[2, 1]]to not prompt any errors. – Kuba Sep 28 '16 at 08:34