вообще есть вероятность что еще файл не исполняется, поэтому проеверьте вывод каким нибудь текстом или в отладчике.
пс: я проверил, проблема похоже с файлом а не со временем
а ты делаешь этот код в цикле с интервалом хотя бы минута?
совет, равенство делай не строгое, а такое st.wMinute >=21
и отладка, хотя бы выводи на экран на время поиска проблемы значение st.wMinute