我是c ++的初学者,我正在努力使用日期。我认为ctime库可能会有所帮助,但我不确定。
对于我的计划,我需要让某人进入他们加入俱乐部的日期,然后我需要将其与当前日期进行比较以计算会员费。
我也不确定接受日期的最佳方式(例如,分别输入日/月/年或作为字符串一起输入?)。
我无法找到一种简单的方法,我会非常感谢一些帮助。谢谢。
答案 0 :(得分:3)
您可以从用户那里获取日期,并使用strptime将其解析为tm结构。
例如:
tm timeDate;
strptime(input_str.c_str(),"%Y-%m-%d %H:%M", &timeDate); // define date / time format convenient for you here; this is just an example
然后转换为time_t类型:
time_t time_input = mktime(&timeDate);
然后与另一个time_t进行比较(以相同的方式创建或通过获取当前系统时间或您需要的任何内容);
double timeDiff = difftime(time_input, other_time_t_value);
使用的资源:
另一种选择可能是Boost日期时间库(我不记得自己使用它,所以我不会做更多的事情而不是推荐你)推荐here
其他人阅读此问题的说明:我认为OP不使用C ++ 11或更高版本。如果你是,this answer可能对你更好。
答案 1 :(得分:0)
参考https://stackoverflow.com/a/997988/3989888
#include <ctime>
#include <iostream>
using namespace std;
int main() {
time_t t = time(0); // get time now
struct tm * now = localtime( & t );
cout << (now->tm_year + 1900) << ' '
<< (now->tm_mon + 1) << ' '
<< now->tm_mday
<< endl;
cout<<"Enter Date YYYY MM DD"<<endl;
int y,m,d;
cin>>y;
cin>>m;
cin>>d;
cout<<"Member since: "<<y-now->tm_year-1900<<" years "<<m-now->tm_mon-1<<" months "<<d-now->tm_mday<<" days "<<endl;
}
答案 2 :(得分:0)
说真的吗?请编写现代代码并使用。 $roles = config('constants.roles');
public function siteAdminBrands()
{
return $this->hasMany(Brand::class, 'brand_has_users');
}
public function clientAdminBrands()
{
return $this->hasMany(Brand::class, 'brand_has_client_admin');
}
public function brands($query)
{
return $query
->when($this->hasRole($roles['brand_site_admin']),function($q){
return $q->with('siteAdminBrands');
})
->when($this->hasRole($roles['client_admin']),function($q){
return $q->with('clientAdminBrands');
});
}
}
。
像
这样的东西std::chrono::duration