我目前正在使用embarcadero c ++,这是我第一次使用它,所以对我来说这是全新的。
我想要达到的目的是获取当前日期,确保日期为"dd/MM/yyyy"
格式。当我确定是这种情况时,我想在当前日期添加一个月。
所以,让我们说现在的日期是2016年8月18日,这必须改为2016年8月18日,最后的结果应该是2016年9月18日。
我发现embarcardero中有this的方法,但我不知道如何使用它。
目前我只能得到这样的当前日期。
TDateTime currentDate = Date();
我希望有人能够帮助我。
答案 0 :(得分:0)
日期对象的格式不是“dd / MM / yyyy”。日期对象在内部简单地表示为数字(或者可能是某种其他形式的表示,而不是您的问题或责任)。
所以你不必检查它是否采用这种格式,因为没有日期对象将采用这种格式,它们根本就没有格式。
您必须对语言或库提供的Date对象执行添加/减少,然后(可选)您可以将其格式化为人类可读的字符串,使其看起来像18/08/2016或8月18日2016或您选择的任何其他可读格式。
两个系统之间的日期转移可能是类似的格式,但是那样格式化日期完全取决于你。
至于如何做到这一点,你发布的链接似乎是一种可能的方式(或者http://docwiki.embarcadero.com/Libraries/Berlin/en/System.SysUtils.IncMonth),我恐怕我不能给你一个例子,因为我不熟悉这个工具/语言涉及,我只是简单地谈论日期操作,他们应该总是在原始对象上。
答案 1 :(得分:0)
我明白了。
在我搜索了更多内容之后,我找到了在this页面上使用IncMonth
方法的方法。
给出我的问题的例子如下:
void __fastcall TForm1::edtMonthsExit(TObject *Sender)
{
TDateTime StartDate = edtStartDate->Text;
int Months = edtMonths->Text.ToInt();
TDateTime NextPeriod = IncMonth(StartDate, Months);
edtNextPeriod->Text = NextPeriod;
}
看了之后,我相应地改变了我的代码
TDateTime CurrentDate = Date();
TDateTime EndDate = IncMonth(CurrentDate, 1);