最近在做一个项目,其中要用到:输入一个初始日期,后台给这个日期加上n天,然后再存储进SQL数据库中。
思路有三点:
1.可以从数据库层面操作 使用DATEADD函数,
具体参考此博客SQL Server日期时间加减函数–DATEDIFF、DateAdd_十言1的博客-CSDN博客
2.使用DateTime函数
参考了C# 日期加天数_c#日期加天数_CY2017的博客-CSDN博客这篇博客的代码,
博客中的代码对于 “要加的日期天数-本月剩余天数>下月的天数” 的情况有问题,
比如初始5.16,要加60天,就会得到4.45的日期。
下面是我修改过的代码
public static string ReTime(string data, int str)//data为初始日期,str为增加的天数
{
DateTime dt = DateTime.Parse(data);
int year = dt.Year;
int month = dt.Month;
int day = dt.Day;
int n = DateTime.DaysInMonth(year, month);
int k = day + str;
if (k > n)
{
day = str - (n - day);
month = month + 1;
while(day>DateTime.DaysInMonth(year,month)){
day = day - DateTime.DaysInMonth(year, month);
month = month+1;
if (month > 12)
{
month = 1;
year = year + 1;
}
}
if (month > 12)
{
month = 1;
year = year + 1;
}
}
else
{
day = day + str;
}
string c = year + "-" + month + "-" + day;
return c;
}
当然这种写法是较为繁琐的,相当于写了遍底层逻辑,完全可以用封装好的函数来操作;
3.DateTime函数
protected string DateAdd(string date,int n)
{
return DateTime.Parse(date).AddDays(n).ToString();
}
简直不要太简单。。。