如何在 C# 中连接自定义学年



有人可以帮我吗? 我有一个程序,我可以在其中添加学年的多个条目。主要 ID 格式应为 SY17-18、SY18-19 等。我确实得到了格式,但我正在使用DateTime.Now来获取当前年份,因此每次运行程序时主ID都会保持不变,因为我基于日期时间。 这是我的代码:

int curr = Convert.ToInt32(DateTime.Now.ToString("yy"));
int dt = curr + 1;
string sy = "SY" + curr + "-" + dt;
txtSYID.Text = sy;

我怎样才能产生这种格式,它会自动连接,而不必基于当前年份。 谢谢你的帮助。

如果当前日期时间显示 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);
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")));
}

这应该有效

最新更新