获取当前日期往前推N天或者N个月

2019-05-28  本文已影响0人  伴我多久_5050

这是我之前写的一个功能的需求

前后天都可以这么写,前台写在js函数中。

日期:往期推7天

public string[] Day(string date)

        {

string[] dateTimes =newstring[7];// 日期节点

date = date.Replace('/','-');

intpYears = Convert.ToInt32(date.Split('-')[0]);

intpMonths = Convert.ToInt32(date.Split('-')[1]);

intdays = DateTime.DaysInMonth(pYears, pMonths);

intpDay = Convert.ToDateTime(date).Day;

stringtime1 ="";

stringtime2 ="";

for(inti = 0; i < 7; i++)

            {

if(i!=0)

                {

                    pDay = pDay - 1;

                }

if(pMonths < 10)

                {

time1 ="0"+ pMonths;

                }

else

                {

                    time1 = Convert.ToString(pMonths);

                }

if(pDay < 10)

                {

time2 ="0"+ pDay;

                }

else

                {

                    time2 =Convert.ToString(pDay);

                }

stringdatetime1 = (pYears +"-"+ time1 +"-"+ time2);// 每天的开始时间也可以加上“00:00: 00”

intvMaxs = DateTime.DaysInMonth(pYears, pMonths);// 每个月的天数

stringdatetime2 = (pYears +"-"+ time1 +"-"+ time2);// 每天的结束时间“23 :59 :59”

               // datetime1和datetime2两个选其中一个就OK了

for(intj = i; j <= i; j++)

                {

                    dateTimes[i] = datetime1;

                }

            }

//数组 取反 因为我们是从最近的日期开始往前推,所以我们要把渠道的日期反过来从小到大,看需求,可写可不写

  Array.Reverse(dateTimes);  

returndateTimes;

        }

日期:往前推5个月

public string[] datetomaxday(string date)

        {

// 定义下标为6的原因是因为,我们要求的是往前推五个月是五个时间区间不是五个时间节点

string[] dateTimes =newstring[6];// 8.30  9.30  10.30  11.30  12.30  01.30 六个时间节点

date = date.Replace('/','-');//把 / 替换为 -

intpYears = Convert.ToInt32(date.Split('-')[0]);

intpMonths = Convert.ToInt32(date.Split('-')[1]);

intit = pYears + 1;

for(inti = 0; i < 6; i++)

            {

if(pMonths == 1 && i == 1)

                {

                    pYears = pYears - 1;

                    pMonths = 12;

                }

else

                {

if(pMonths == 1)

                    {

                        pMonths = pMonths - 0;

                    }

else

                    {

                        pMonths = pMonths - 1;

                    }

                }

stringdatetime1 = (pYears +"-"+ pMonths +"-01 00:00:00");// 求每个月月初的时间

intvMaxs = DateTime.DaysInMonth(pYears, pMonths);// 求所每个月的天数

stringdatetime2 = (pYears +"-"+ pMonths +"-"+ vMaxs +" 23:59:59");// 每个月月末的时间

              // datetime1和datetime2两个选其中一个就OK了

for(intj = i; j <= i; j++)

                {

                    dateTimes[i] = datetime2;

                }

            }

//数组 取反 因为我们是从最近的日期开始往前推,所以我们要把渠道的日期反过来从小到大,看需求,可写可不写

            Array.Reverse(dateTimes); 

returndateTimes;

        }

上一篇 下一篇

猜你喜欢

热点阅读