Juliano AXA Postado Março 17, 2014 Denunciar Share Postado Março 17, 2014 Boa tarde !! eu tenho essas funções abaixo porem to com problemas na função de subtrair quando chega no dia 01 e eu mando subtrair mais 1 dia ele vai pra zero ao envés pular pro ultimo dia do mes anterior. alguém pode me da uma força ? /************************************************************** Somar ***************************************************************************/ function numdias(mes,ano) { if((mes<8 && mes%2==1) || (mes>7 && mes%2==0)) return 31; if(mes!=2) return 30; if(ano%4==0) return 29; return 28; } function somadias(data, dias) { data=data.split('-'); diafuturo=parseInt(data[0])+dias; mes=parseInt(data[1]); ano=parseInt(data[2]); while(diafuturo>numdias(mes,ano)) { diafuturo-=numdias(mes,ano); mes++; if(mes>12) { mes=1; ano++; } } if(diafuturo<10) diafuturo='0'+diafuturo; if(mes<10) mes='0'+mes; return diafuturo+"-"+mes+"-"+ano; } /************************************************************** subtrair ***************************************************************************/ function subtrairdias(data, dias) { data=data.split('-'); diafuturo=parseInt(data[0])-dias; mes=parseInt(data[1]); ano=parseInt(data[2]); while(diafuturo<numdias(mes,ano)) { diafuturo-=numdias(mes,ano); mes--; if(mes>12) { mes=1; ano--; } } if(diafuturo<10) diafuturo='0'+diafuturo; if(mes<10) mes='0'+mes; return diafuturo+"-"+mes+"-"+ano; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Juliano AXA Postado Março 19, 2014 Autor Denunciar Share Postado Março 19, 2014 depois de pensar um pouco consegui resolve. se alguém precisar ta ai function subtrairdias(data, dias) { data=data.split('-'); dianterior=parseInt(data[0])-dias; mes=parseInt(data[1]); ano=parseInt(data[2]); if(dianterior=='0'){ mes--; dianterior=(numdias(mes,ano)); }else{ while(dianterior>numdias(mes,ano)) { dianterior+=numdias(mes,ano); mes--; if(mes>12) { mes=1; ano--; } }} if(dianterior<10) dianterior='0'+dianterior; if(mes<10) mes='0'+mes; return dianterior+"-"+mes+"-"+ano; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Juliano AXA
Boa tarde !!
eu tenho essas funções abaixo porem to com problemas na função de subtrair quando chega no dia 01 e eu mando subtrair mais 1 dia ele vai pra zero ao envés pular pro ultimo dia do mes anterior. alguém pode me da uma força ?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.