格式化日期并为其添加月份

时间:2016-08-18 09:41:13

标签: date c++builder

我目前正在使用embarcadero c ++,这是我第一次使用它,所以对我来说这是全新的。

我想要达到的目的是获取当前日期,确保日期为"dd/MM/yyyy"格式。当我确定是这种情况时,我想在当前日期添加一个月。

所以,让我们说现在的日期是2016年8月18日,这必须改为2016年8月18日,最后的结果应该是2016年9月18日。

我发现embarcardero中有this的方法,但我不知道如何使用它。

目前我只能得到这样的当前日期。

TDateTime currentDate = Date();

我希望有人能够帮助我。

2 个答案:

答案 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);