关于一个日期分组的算法

来源:百度知道 编辑:UC知道 时间:2024/06/04 07:29:33
求一个日期的分组算法
输入:var obj = ["2008-01-01","2008-01-02","2008-01-03"];
输出:2008-01-01~2008-01-03

输入:var obj = ["2008-08-31","2008-09-01","2008-09-02","2008-09-04"];
输出:2008-08-31~2008-09-02;2008-09-04

输入:var obj = ["2008-08-31"];
输出:2008-09-04

语言为所谓,最好是javascript
谢谢了~~
最后那个是
输入:var obj = ["2008-08-31"];
输出:2008-08-31

<script type="text/javascript">
function DateDiff(sDate1,sDate2)
{
var arrDate,objDate1,objDate2,intDays;
arrDate=sDate1.split("-");
objDate1=new Date(arrDate[1]+'-'+arrDate[2]+'-'+arrDate[0]);
arrDate=sDate2.split("-");
objDate2=new Date(arrDate[1] + '-'+arrDate[2]+'-'+arrDate[0]);
intDays=parseInt(Math.abs(objDate1-objDate2)/1000/60/60/24);
return intDays;
}

function f(obj)
{
if(obj.length == 1) return obj[0];
var s = obj[0];
var t = "";
for(var i = 0; i < obj.length - 1; i++)
{
if (DateDiff(obj[i], obj[i+1])==1)
{
s += "~";
s = s.replace("~~", "~");
}
else
{
if(i==0)
s += "," + obj[i+1];

else
{
if(obj[i]==t)
s += "," + obj[i+1];
else
{