我使用Howard Hinnant's date library,並試圖找到兩個日期之間的月總數量。如何轉換「的std ::計時::持續時間<整型,性病::比<2629746升,1升>>」到「INT」類型?
invalid static_cast from type ‘std::chrono::duration<int, std::ratio<2629746l, 1l> >’ to type ‘int’ int period = static_cast<int>(period_in_months(start_date, end_date));
下面是我使用的功能:
auto period_in_months(year_month_day start_date, year_month_day end_time) {
auto total_months = ((end_time.year() - start_date.year())*12 + (end_time.month() - start_date.month()));
return (total_months--);
}
double percentage_return(string risk_profile, year_month_day start_date, year_month_day end_date) {
int period = static_cast<int>(period_in_months(start_date, end_date));
// do something
}
我嘗試使用chrono::duration_cast<int>(period_in_months(start_date, end_date)
卻收到了同樣的錯誤。
而且,我們如何轉換'delta'爲int? – Shravan40
@ Shravan40:用該詳細信息更新答案。 –
@ Shravan40:如果有幫助,下面是一個關於chrono的視頻教程:https://www.youtube.com/watch?v=P32hvk8b13M很有用,因爲日期庫建立在計時器上。 –