Ответ 1
Существует существующий инструмент для RunAsDate:
Описание
RunAsDate - небольшая утилита, которая позволяет вам запускать программу в указанные вами дату и время. Эта утилита не изменяет текущую системную дату и время вашего компьютера, но она вводит только дату/время, которое вы указываете в нужное приложение. Вы можете запускать несколько приложений одновременно, каждое приложение работает с разными датами и временем, в то время как реальная дата/время вашей системы продолжает работать нормально.
Как это работает?
RunAsDate перехватывает вызовы API ядра, которые возвращают текущую дату и время (GetSystemTime, GetLocalTime, GetSystemTimeAsFileTime) и заменяет текущую дату/время на указанную дату/время.
Системные требования
RunAsDate работает под Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008, Windows Vista, Windows 7 и Windows 8. Старые версии Windows не поддерживаются. Это также версия x64, доступная в разделенной загрузке, для использования с приложениями x64.