C#:根据设定的周期增加发票号
我正在创建递增的发票编号,如下所示:AABBBB1122。
'A' 和 'B' 绑定到我的代码中的标识符。但是我需要的数字分别是month和year。例如:0821 (2021 年 8 月)。我不想以任何方式将它连接到日历。如果可能,我想定义一个开始日期,并从那里增加。
也就是说:0821必须增加到0921、1021、1121、1221 - 在年份增加之前;0122。
我怎样才能做到这一点?
到目前为止我所得到的:
string AA {
get { return this.IdentifierA.Substring(0, 2);
set { SetAndNotify(ref this.AA, value); }
}
string BB {
get { return this.IdentifierB.Substring(0, 4);
set { SetAndNotify(ref this.BB, value); }
}
string InvoiceNumber {
get { return String.Concat(AA + BB + /* what goes here? */).ToUpper(); }
set { SetAndNotify(ref this.InvoiceNumber, value);
回答
听起来像是处理发票编号的一种特殊方式。您是说您不希望它基于当前日期,而是以MMYY 样式递增?
给定一个典型的自动递增 int KEY,每张发票增加 1,使用:
((KEY % 12).ToString("00")+(KEY/12).ToString("00"))
从12*21+8开始 KEY以0821开始。
.. 但根据发票要求,我认为您肯定要问的是:
(DateTime.Now.Month.ToString("00")+DateTime.Now.Year.ToString("00"))
- 挑剔:只调用一次 DateTime.Now 以避免在边界上得到不同的答案:2021-12-31 + 2022-01-01 = 1222