d2: получить полное количество единиц в core.time.uration - PullRequest
2 голосов
/ 27 марта 2012

Я возиться с core.time.Duration с - в частности, я пытаюсь правильно получить количество полных минут в "2 днях и 1 часе" Duration.Как выяснилось, get!"minutes" возвращает количество минут без часов, дней и недель (например, 0 в данном случае), поэтому для меня это неуместно, поскольку я ожидаю ответа 2940.

Я изучил источники и нашел core.time.getUnitsFromHNSecs функцию, которая делает именно то, что мне нужно, но она закрыта для core.time и использует приватное поле _hnsecs из Duration объектов.

Конечно,можно сделать

long minutes_in_duration(Duration d) {
    return (d.get!"minutes"() + d.get!"hours"() * 60 + 
            d.get!"days"() * 24 * 60 + d.get!("weeks") * 7 * 24 * 60);
}

но это чертовски неуклюже.Есть ли лучший способ сделать то же самое, не рассеивая кишки Duration?

1 Ответ

2 голосов
/ 27 марта 2012

Более тщательное чтение источника выявило пропущенное свойство .total!"unit", которое делает именно то, что должно.

...