Прежде всего, я предполагаю, что функция menu_conditions
, которую вы вызываете, на самом деле является функцией parent
, но я считаю, что вы должны это исправить.
Во-вторых, когда вы запускаете child()
в последней строке, он возвращает число или строку error
. Если вы хотите иметь возможность запустить child
внутри папки parent
, просто передайте его без скобок, например:
print(parent(child, ui))
Изменение является к.NET 3,5 абсолютно вне рассмотрения? Это сделало бы Вашу жизнь очень, намного легче. Иначе Вы застреваете с плоскостью TimeZone и классы DaylightSavings, а также имеющий необходимость выбрать известные часовые пояса с помощью P/Invoke.
У William Stacey есть сообщение в блоге с некоторым кодом, чтобы сделать это - но я не попробовал его, так не может ручаться за его точность. (По моему опыту, он обычно довольно хорош хотя :) Существуют несомненно подобные биты кода вокруг, если тот не помогает Вам.
Я полагаю, что API, который он использует, не имеет доступа к историческим данным, btw. Другими словами, это предположит, что DST всегда умирает в первое воскресенье октября (или независимо от того, что правило) вместо того, чтобы знать, что правило изменялось со временем. TimeZoneInfo в.NET 3,5 поддержки исторические данные, где ОС делает.