{
string DATE="";
int riqi=0,days=0,day=0;
string date=dt.Rows[0][0].ToString();
int testDate=Convert.ToInt32(date.Substring(0,4));//取年
int testDate1=Convert.ToInt32(date.Substring(4,2));//取月
int testDate2=Convert.ToInt32(date.Substring(6,2));//取日期
days=yuefen(testDate1);//验证月份并给出正确天数
riqi=Convert.ToInt32(testDate2)+dd;
if(riqi>days)//如果加7天后的日期大于这个月的日期
{
if(testDate1==12)//如果当前月是12月
{
day=yuefen(1);//把1月传回去计算1月的天数
testDate1=1;//改月份为1月份
testDate=testDate+1;//并且把当前年加1
}
else
{
testDate1=testDate1+1;//把当前月加1
day=yuefen(testDate1);
}
day=riqi-days;//用加完7天的日期减去新算出的这个月的日期就是新的日期了
DATE+=testDate;//加正确的年份进去
if(testDate1>0 && testDate1<10)
{
DATE+=0;
DATE+=testDate1;
}
else
{
DATE+=testDate1;//加正确的月份进去
}
if(day>0 && day<10)
{
DATE+=0;
DATE+=day;
}
else
{
DATE+=day;//加正确的日期进去
}
}
else
{
DATE+=testDate;
if(testDate1>0 && testDate1<10)
{
DATE+=0;
DATE+=testDate1;
}
else
{
DATE+=testDate1;//加正确的月份进去
}
if(riqi>0 && riqi<10)
{
DATE+=0;
DATE+=riqi;
}
else
{
DATE+=riqi;//加正确的日期进去
}
}
return DATE;
}
private string jian7(DataTable dt,int dd)//计算减7天后的正确日期
{
string DATE="";
int riqi=0,days=0,day=0;
string date=dt.Rows[0][0].ToString();
int testDate=Convert.ToInt32(date.Substring(0,4));//取年
int testDate1=Convert.ToInt32(date.Substring(4,2));//取月
int testDate2=Convert.ToInt32(date.Substring(6,2));//取日期
days=yuefen(testDate1);//验证月份并给出正确天数
riqi=Convert.ToInt32(testDate2)-dd;//用取到的天数减去7天
if(riqi<1)//如果结果小于1要减少一个月
{
if(testDate1==1)//如果当前月是1月
{
day=yuefen(12);//传递12月去取天数
testDate1=12;//改月份为12月
testDate=testDate-1;//月份回退年份也回退
}
else
{
testDate1=testDate1-1;//把取出的月份减1
day=yuefen(testDate1);
}
day=day+riqi;//计算出正确的日期
DATE+=testDate;//加正确的年份进去
if(testDate1>0 && testDate1<10)
{
DATE+=0;
DATE+=testDate1;
}
else
{
DATE+=testDate1;//加正确的月份进去
}
if(day>0 && day<10)
{
DATE+=0;
DATE+=day;
}
else
{
DATE+=day;//加正确的日期进去
}
}
else
{
DATE+=testDate;
if(testDate1>0 && testDate1<10)
{
DATE+=0;
DATE+=testDate1;
}
else
{
DATE+=testDate1;//加正确的月份进去
}
if(riqi>0 && riqi<10)
{
DATE+=0;
DATE+=riqi;
}
else
{
DATE+=riqi;//加正确的日期进去
}
}
return DATE;
}
private int yuefen(int testDate1)//接受月份计算该月的正确天数
{
int days=0;
switch(testDate1)//验证月份并给出正确天数
{
case 1:
days=31;
break;
case 2:
if(Convert.ToInt32(testDate1)%4==0)
{
days=29;
}
else
{
days=28;
}
break;
case 3:
days = 31;
break;
case 4:
days = 30;
break;
case 5:
days = 31;
break;
case 6:
days = 30;
break;
case 7:
days = 31;
break;
case 8:
days = 31;
break;
case 9:
days = 30;
break;
case 0:
days = 31;
break;
case 11:
days = 30;
break;
case 12:
days = 31;
break;
}
return days;
}