有人可以帮我吗? 我有一个程序,可以在其中添加多个学年条目。主要ID格式应为SY17-18,SY18-19等。我确实获得了格式,但是我使用的是DateTime.Now来获取当前年份,因此由于我将程序基于DateTime,所以每次运行程序时主ID都将保持不变。 这是我的代码:
int curr = Convert.ToInt32(DateTime.Now.ToString("yy"));
int dt = curr + 1;
string sy = "SY" + curr + "-" + dt;
txtSYID.Text = sy;
我如何能够产生一种这样的格式,使其自动合并而不必在当年建立。 谢谢您的帮助。
答案 0 :(得分:1)
如果当前日期时间显示为2018/10,则我们位于SY18-19
,但是2019/3仍为SY18-19
(我将第6个月设置为学年末,但是您可以更改它只是作为一个例子):
DateTime date = DateTime.Now;
int curr = date.Year;
if(date.Month <= 6) curr--;
string sy = $"SY{curr}-{curr + 1}";
编辑(考虑您的评论): 如果只想生成学年,则可以执行此操作(不需要日期时间):
Enumerable.Range(17, 50).Select(x=> $"SY{x}-{x+1}").ToArray();
上面的代码将为您提供一个包含SY50-51以下学年的数组。
如果要用逗号分隔的字符串:
for(int i=17;i<50;i++)
sy += $",SY{i}-{i+1}";
sy = sy.SubString(1);
答案 1 :(得分:0)
public string ToFinancialYearShort(DateTime dateTime)
{
return "SY: " + (dateTime.Month >= 4 ? (dateTime.ToString("yy")
+ " - " +dateTime.AddYears(1).ToString("yy")) : (dateTime.AddYears(-1).ToString("yy") + " - " + dateTime.ToString("yy")));
}
这应该有效