В пакете расширений Miscellaneous есть ряд подпакетов, содержащих функции времени и даты. Так, в подпакете Calendar сосредоточены вычисления, относящиеся к календарным датам:
DayOfWeek [ {year, month, day} ] — вычисляет день недели по заданным году, месяцу и числу;
DaysBetween[{yearl,monthl,dayl},{year2, month2, day2} — вычисляет число суток между двумя датами:
DaysPlus [ {year, month, day}, n] — дает дату и-го дня после заданной даты.
Во всех этих функциях возможна опция Calendar->cal. Имеется также функция смены календаря:
CalendarChange [ {year, month, day}, call, cal2] — преобразует заданную дату из одного календаря в другой.
В подпакете CityData можно найти функции, позволяющие найти координаты большинства крупных городов мира: CityData [city, datatype], CityData [city] иCityData[datatype]. Например:
<<Miscellaneous`CityData`
CityData["Montreal",
CityPosition]
{{45, 30}, {-73, -36}}
CityData["Washington"]
{{CityPosition, {{38, 53, 42}, {-77, -2, -12}}}}
Координаты (широта и долгота) выдаются в формате {градусы, минуты} или {градусы, минуты, секунды}.
В этом же подпакете есть функции для вычисления расстояний между городами:
CityDistance [ "cityl", "pity"] — возвращает расстояние между двумя указанными городами;
CityDistance["cityl","city",CityDistanceMethod->Method] — возвращает расстояние между двумя указанными городами со спецификацией метода вычислений (по умолчанию используется функция SphericalDistance из подпакета Geodesy).
Пример вычисления расстояния между городами дан ниже:
CityDistance["Washington", "Montreal"]//N
786.915
Базу данных можно расширять, добавляя в нее информацию о новых городах:
CityPosition[{"Champaign", "USA", "IL"}] = {{40, 7, 5},