var total=new Array(13); 
total[0]=parseInt(dpm[0]); 
for (i=1;i <dpm.length-1;i++) total[i]=parseInt(dpm[i])+total[i-1]; 
for (i=dpm.length-1;i>0;i--) 
if (dayim>total[i-1]){ 
dayim=dayim-total[i-1]; 
miy=i; 

这段代码还是看不太懂,你能给一句一句的解释一下吗?

解决方案 »

  1.   

    var total=new Array(13); //13位数组. 
    total[0]=parseInt(dpm[0]); //第一位放DPM的第一位并转数字型. 
    for (i=1;i <dpm.length-1;i++) total[i]=parseInt(dpm[i])+total[i-1]; //第I位(由第二开始)放前一月加今个月的日数和 
    for (i=dpm.length-1;i>0;i--) 
    if (dayim>total[i-1]){ //当前日(在全年总天数的日子)大于某月的总数的话.也就是说是超过那个月的天数 
    dayim=dayim-total[i-1]; //就返回是该月第几日 miy=i; //拿月份标记 } 还是建议你找个现成的算法吧...这个算法不大好...