Как вы извлекаете единицу времени при использовании difftime ()?

TL; DR Если вы не хотите читать всю статью, предоставленную Youssef, и хотите быстро решить, как заставить ModelState.IsValid вернуть false. Сделай это.

[TestMethod]
public void TestLogin_InvalidModel()
{
    AccountController controller = CreateAccountController();
    // new code added -->
    controller.ModelState.AddModelError("fakeError", "fakeError");
    // end of new code
    ...
    var response = controller.PostLogin(new LoginModel() {  });

    Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);

}

Теперь я могу представить, что CreateAccountController () выглядит примерно так: минимум ->

return new AccountApiController()
{
    Request = new HttpRequestMessage(),
    Configuration = new HttpConfiguration()
};

Надеюсь, что это даст быстрый ответ для этих поисковых запросов:)

2
задан Alyssa Mae Moya 17 January 2019 в 02:03
поделиться

2 ответа

Позвоните units из duration, чтобы получить единицу измерения и получить числовое значение путем поднабора duration:

print(paste("Loop", i, "took", round(duration[[1]], 2),  units(duration), "to run."))

Вот пример:

start_time <- Sys.time()

# few seconds later
end_time <- Sys.time()

duration <- difftime(end_time, start_time)

print(paste("Loop", 1, "took", round(duration[[1]], 2),  units(duration), "to run."))

Результат :

[1] "Loop 1 took 6.97 secs to run."

Единица будет автоматической в ​​зависимости от диапазона длительности. Смотрите этот другой пример:

start_time <- Sys.time()

# few days later
end_time <- as.Date("2019-01-23")

duration <- difftime(end_time, start_time)

print(paste("Loop", 1, "took", round(duration[[1]], 2),  units(duration), "to run."))

Результат:

> print(paste("Loop", 1, "took", round(duration[[1]], 2),  units(duration), "to run."))
[1] "Loop 1 took 5.9 days to run."
0
ответ дан JdeMello 17 January 2019 в 02:03
поделиться

Один из способов - захватить вывод из difftime, используя capture.output

start_time <- as.POSIXct('2019-01-01 02:34:00')
end_time <- as.POSIXct('2019-01-01 03:14:00')

paste("Loop 5 took", capture.output(difftime(end_time, start_time)), "to run.")
#[1] "Loop 5 took Time difference of 40 mins to run."

. Теперь вы можете изменить вывод, чтобы сделать его осмысленным, скажем, удалить «Разницу во времени» из выход

sent <- capture.output(difftime(end_time, start_time))
paste("Loop 5 took",sub("Time difference of ","", sent) , "to run.")
#[1] "Loop 5 took 40 mins to run."

для другого входа

start_time <- as.POSIXct('2019-01-01 02:34:00')
end_time <- as.POSIXct('2019-01-01 02:34:50')

sent <- capture.output(difftime(end_time, start_time))
paste("Loop 5 took",sub("Time difference of ","", sent) , "to run.")
#[1] "Loop 5 took 50 secs to run."
0
ответ дан Ronak Shah 17 January 2019 в 02:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: