Я был одержим этой проблемой, когда я изучал Руби. Это было лучшее, что я мог сделать:
def spiral(matrix)
matrix.empty? ? [] : matrix.shift + spiral(matrix.transpose.reverse)
end
Вы можете проверить некоторые из моих других решений, отступив через ревизии в этом gist . Кроме того, если вы перейдете по ссылке, к которой я разветвлял суть, вы найдете некоторые другие умные решения. Действительно интересная проблема, которая может быть решена несколькими элегантными способами - особенно в Ruby.
Ваши вопросы немного сбивают с толку, но я думаю, вы хотите достичь двух вещей:
Определить слова, которые представляют выражение времени
Если это то, что вам нужно, проверьте структуру утенка , она идентифицирует выражения времени и нормализует их в одно уникальное формальное представление даты. Обратите внимание, что вам нужно передать контрольную дату для неоднозначных выражений времени.
Вы можете запустить его как сервис и вызвать его из своего кода.