一、前端js
js获取当前日期加上30天之后的日期
var
date1 =
new
Date();
var
date2 =
new
Date(date1);
date2.setDate(date1.getDate() + 30);
console.log(date2.getFullYear() +
"-"
+ (date2.getMonth() + 1) +
"-"
+ date2.getDate() +
"-"
+ date2.getDay());
同理,往前推也使用(年-月-日-星期)
(亲试可行)
二、oracle数据库查询(参数:startDate、endDate)
Oracle数据库日期范围查询有两种方式:to_char方式和to_date方式,接下来我们通过一个实例来介绍这一过程。我们假设要查询2019-05-02到2019-05-30之间的数据,实现方式如下:
to_date方式:select *
from ycl_kqzlqk
where jcrq >= to_date('2018-12-30','yyyy-mm-dd')
and jcrq <= to_date('2019-3-31','yyyy-mm-dd')
备注:jcrq 为数据库字段名,startDate = '2018-12-30',endDate = '2019-3-31'
运行的结果是:使用plsqldev,可以查出两者间数据,也包含左右临界日期。(亲试可行)
to_char方式:
同样查询上面两个日期
select * from tablename where to_char(time,'yyyy-mm-dd')>='2011-05-02' and to_char(time,'yyyy-mm-dd')<='2011-05-30'
查询结果:可以同时显示05-02和05-30的数据。(待尝试)
三、java当前日期往前推N天或者N个月
日期:往期推7天
public string[] Day(string date)
{
string[] dateTimes = new string[7];// 日期节点
date = date.Replace('/', '-');
int pYears = Convert.ToInt32(date.Split('-')[0]);
int pMonths = Convert.ToInt32(date.Split('-')[1]);
int days = DateTime.DaysInMonth(pYears, pMonths);
int pDay = Convert.ToDateTime(date).Day;
string time1 = "";
string time2 = "";
for (int i = 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);
}
string datetime1 = (pYears + "-" + time1 + "-" + time2);// 每天的开始时间也可以加上“00:00: 00”
int vMaxs = DateTime.DaysInMonth(pYears, pMonths);// 每个月的天数
string datetime2 = (pYears + "-" + time1 + "-" + time2);// 每天的结束时间“23 :59 :59”
// datetime1和datetime2两个选其中一个就OK了
for (int j = i; j <= i; j++)
{
dateTimes[i] = datetime1;
}
}
//数组 取反 因为我们是从最近的日期开始往前推,所以我们要把渠道的日期反过来从小到大,看需求,可写可不写
Array.Reverse(dateTimes);
return dateTimes;
}
日期:往前推5个月
public string[] datetomaxday(string date)
{
// 定义下标为6的原因是因为,我们要求的是往前推五个月是五个时间区间不是五个时间节点
string[] dateTimes = new string[6];// 8.30 9.30 10.30 11.30 12.30 01.30 六个时间节点
date = date.Replace('/', '-');//把 / 替换为 -
int pYears = Convert.ToInt32(date.Split('-')[0]);
int pMonths = Convert.ToInt32(date.Split('-')[1]);
int it = pYears + 1;
for (int i = 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;
}
}
string datetime1 = (pYears + "-" + pMonths + "-01 00:00:00");// 求每个月月初的时间
int vMaxs = DateTime.DaysInMonth(pYears, pMonths);// 求所每个月的天数
string datetime2 = (pYears + "-" + pMonths + "-" + vMaxs + " 23:59:59");// 每个月月末的时间
// datetime1和datetime2两个选其中一个就OK了
for (int j = i; j <= i; j++)
{
dateTimes[i] = datetime2;
}
}
//数组 取反 因为我们是从最近的日期开始往前推,所以我们要把渠道的日期反过来从小到大,看需求,可写可不写
Array.Reverse(dateTimes);
return dateTimes;
}
版权声明:本文为CSDN博主「IT界泥石流」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zw_980512/article/details/86528513
从博文上看到,并未试试是否可行(待运行)
添加笔者用到此功能 的例子:https://blog.csdn.net/qq_23128255/article/details/120043061