Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nadir garcia junqueira

Calendário

Recommended Posts

Sou iniciante em Javascript. Peço, por gentileza, criar uma saída em 2 ou 3 colunas para o programa abaixo.

<script>
function data(x,y) {
sun =(x+"...."+y)
return(sun)
}
function adicionardias(data,dias)
{
sun1 = new Date(data.getTime()+(dias*24*60*60*1000))
return(sun1)
}
function diferencaDias(data1, data2){
        dif =
        Date.UTC(data1.getYear(),data1.getMonth(),data1.getDate(),0,0,0)
      - Date.UTC(data2.getYear(),data2.getMonth(),data2.getDate(),0,0,0);
    d = Math.abs((dif / 1000 / 60 / 60 / 24))
    return Math.abs((dif / 1000 / 60 / 60 / 24))   
  }
 
a=new Array("domingo", "segunda", "terça", "quarta", "quinta", "sexta", "sábado")
b=new Array("jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez")
 
t = prompt("entre data superior"); w1=new Date(t)
z = prompt("entre data inferior"); w = new Date(z);
diferencaDias(new Date(w1.getYear(),w1.getMonth(),w1.getDate()), new Date(w.getYear(),w.getMonth(),w.getDate()))
 
do{
x=w.getDate(); y=a[w.getDay()]
 
total = data(x, y); var p; var q;
 
if(p === undefined){z=b[w.getMonth()], q=z, p=1}else{z=""}
 
if(b[w.getMonth()] !== q){z=b[w.getMonth()], q=z}
 
document.write("//"+z+"..."+total+"<br>"); d-=1
 
adicionardias(w,1); w=sun1
 
         
}while (d >= 0)
         
                                                                                                 //certo até aqui
</script>
 
 
 

 
​ 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sr. Lucas Lima - não seja deselegante; ou pode ajudar ou não. Não estou procurando emprego...

Sou matemático, aposentado e iniciante em javascript. Recolocando a pergunta: Como fazer para obter uma saída

em várias colunas para minha rotina acima, porque quando o intervalo entre as datas for muito extenso, a saída

em coluna única não é o ideal.

Quanto à tag que o Senhor menciona, não sei como utilizar. Que tal me ensinar isso também, mas tudo dentro de

amizade, cordialidade, fraternidade.//Obrigado/nadir

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode explicar melhor?

Como assim colunas? o que devo colocar nos prompts?

 

Coloque um exemplo de entradas e de saída esperada para entendermos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo vou explicar. Primeiro, peço desculpas ao Sr. Lucas Guima que chamei de Lucas Lima.

Exemplificando: entrando com duas datas - a superior de 12/10/2015 e a inferior de 11/25/2015, resulta a saída:

//nov2015...25....quarta
//...26....quinta
//...27....sexta
//...28....sábado
//...29....domingo
//...30....segunda
//dez2015...1....terça
//...2....quarta
//...3....quinta
//...4....sexta
//...5....sábado
//...6....domingo
//...7....segunda
//...8....terça
//...9....quarta
//...10....quinta

Agora pense se a diferença entre as datas fosse de um ano. Tudo em coluna única não dá pra encarar. Fica feio.

Por isso penso em uma saída em 2, 3, ou até mais colunas. Muito obrigado pela atenção/nadir

Compartilhar este post


Link para o post
Compartilhar em outros sites

Considero encerrada minha solicitação. Acabei desenvolvendo uma rotina que pode me devolver até um ano inteiro.

Funciona para quaisquer duas datas diferentes dentro de um mesmo ano. Abaixo a rotina, e logo após, o exemplo com

DATA SUPERIOR em 12/31/2016 e DATA INFERIOR em 1/1/2016; navegador EDGE, WINDOWS 10.

<script>
function listagem0(){dx=m[0]
listagem(dx), z=c, w=new Date(z),
w2=new Date(z), dx=m[1]-1, listagem(dx), s=w.getMonth()+1, z=c,
w=new Date(z), w2=new Date(z), dx=m[2]-1; if(d0+dn == d){exit}; listagem(dx)
s=w.getMonth()+1, z=c, w=new Date(z), w2=new Date(z), dx=m[3]-1;
if(d0+m[1]+dn == d){exit}; listagem(dx);
s=w.getMonth()+1, z=c, w=new Date(z), w2=new Date(z), dx=m[4]-1;
if(d0+m[1]+m[2]+dn == d){exit}; listagem(dx)
s=w.getMonth()+1, z=c, w=new Date(z), w2=new Date(z), dx=m[5]-1;
if(d0+m[1]+m[2]+m[3]+dn == d){exit}; listagem(dx)
s=w.getMonth()+1, z=c, w=new Date(z), w2=new Date(z), dx=m[6]-1;
if(d0+m[1]+m[2]+m[3]+m[4]+dn == d){exit}; listagem(dx)
s=w.getMonth()+1, z=c, w=new Date(z), w2=new Date(z), dx=m[7]-1;
if(d0+m[1]+m[2]+m[3]+m[4]+m[5]+dn == d){exit}; listagem(dx)
s=w.getMonth()+1, z=c, w=new Date(z), w2=new Date(z), dx=m[8]-1;
if(d0+m[1]+m[2]+m[3]+m[4]+m[5]+m[6]+dn == d){exit}; listagem(dx)
s=w.getMonth()+1, z=c, w=new Date(z), w2=new Date(z), dx=m[9]-1;
if(d0+m[1]+m[2]+m[3]+m[4]+m[5]+m[6]+m[7]+dn == d){exit}; listagem(dx)
s=w.getMonth()+1, z=c, w=new Date(z), w2=new Date(z), dx=m[10]-1;
if(d0+m[1]+m[2]+m[3]+m[4]+m[5]+m[6]+m[7]+m[8]+dn == d){exit}; listagem(dx)
s=w.getMonth()+1, z=c, w=new Date(z), w2=new Date(z), dx=m[11]-1;
if(d0+m[1]+m[2]+m[3]+m[4]+m[5]+m[6]+m[7]+m[8]+m[9]+dn == d){exit}; listagem(dx)
}
function listagem(){D=0
do{
i=0; w2=new Date(z); nad=''
for (i=1; i<=dx; i++) {
adicionardias(w2); w2=sun1; if (a[w.getDay()] == a[w2.getDay()]){nad+="..."+w2.getDate()}}
if (D==0){document.write(
'<br>'+w.getFullYear()+b[w.getMonth()]+'<br>'+a[w.getDay()]+'...'+w.getDate()+nad)
}else{document.write('<br>'+a[w.getDay()]+nad)}
D+=1
adicionardias(w); w=sun1
}
while(D <= 6)
}
function adicionardias(data){sun = data.setDate(data.getDate() + 1); sun1 = new Date(sun)
return(sun1)}
function cálculo(ano, mês){lastDay = (new Date(ano, mês, 0)).getDate(); return(lastDay)}
function diferençaDias(data1, data2){ dif =
Date.UTC(data1.getYear(),data1.getMonth(),data1.getDate(),0,0,0)
- Date.UTC(data2.getYear(),data2.getMonth(),data2.getDate(),0,0,0);
d = Math.abs((dif / 1000 / 60 / 60 / 24))
return Math.abs((dif / 1000 / 60 / 60 / 24))
}
function ba(ano, mês){dd = new Date(ano, mês, 1); return(dd)}
function la(ano, mês){pp=new Date(ano, mês, 0).getDate(); return(pp)}
a = ["dom", "segu", "terç", "quar", "quin", "sext", "saba"]
b = ['jan','fev','mar','abr','mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez']
t = prompt('data superior'); w1=new Date(t)
z = prompt('data inferior'); w=new Date(z); w2=new Date(z)
y = w.getFullYear()
c = [ba(y, 0), ba(y, 1), ba(y, 2), ba(y, 3), ba(y, 4), ba(y, 5), ba(y, 6), ba(y, 7),
ba(y, 8), ba(y, 9), ba(y, 10), ba(y, 11)]
k = [la(y,1), la(y,2), la(y,3), la(y,4), la(y,5), la(y,6), la(y,7), la(y,8), la(y,9),
la(y,10), la(y,11), la(y,12)]
diferençaDias(
new Date(w1.getYear(),w1.getMonth(),w1.getDate()),
new Date(w.getYear(),w.getMonth(),w.getDate()))
d=Math.abs((dif / 1000 / 60 / 60 / 24))
cálculo(w.getFullYear(), w.getMonth()+1); d0=lastDay-w.getDate()
dn=w1.getDate()
if(dn-w.getDate() == d){dx=d, listagem(dx)}; s=w.getMonth()+1
if(d0+dn == d){m=[d0,dn], dx=m[0], listagem0(dx)}; s=w.getMonth()+1
if(d0+k+dn == d){m=[d0,k,dn]; dx=m[0];
listagem0(dx)}; s=w.getMonth()+1
if(d0+k+k[s+1]+dn == d){m=[d0,k,k[s+1],dn], dx=m[0], listagem0(dx)}; s=w.getMonth()+1
if(d0+k+k[s+1]+k[s+2]+dn == d){m=[d0,k,k[s+1],k[s+2],dn], dx=m[0], listagem0(dx)};
s=w.getMonth()+1
if(d0+k+k[s+1]+k[s+2]+k[s+3]+dn == d){
m=[d0,k,k[s+1],k[s+2],k[s+3],dn], dx=m[0], listagem0(dx)}; s=w.getMonth()+1
if(d0+k+k[s+1]+k[s+2]+k[s+3]+k[s+4]+dn == d){
m=[d0,k,k[s+1],k[s+2],k[s+3],k[s+4],dn], dx=m[0], listagem0(dx)}; s=w.getMonth()+1
if(d0+k+k[s+1]+k[s+2]+k[s+3]+k[s+4]+k[s+5]+dn == d){
m=[d0,k,k[s+1],k[s+2],k[s+3],k[s+4],k[s+5],dn], dx=m[0], listagem0(dx)}; s=w.getMonth()+1
if(d0+k+k[s+1]+k[s+2]+k[s+3]+k[s+4]+k[s+5]+k[s+6]+dn == d){
m=[d0,k,k[s+1],k[s+2],k[s+3],k[s+4],k[s+5],k[s+6],dn], dx=m[0], listagem0(dx)}; s=w.getMonth()+1
if(d0+k+k[s+1]+k[s+2]+k[s+3]+k[s+4]+k[s+5]+k[s+6]+k[s+7]+dn == d){
m=[d0,k,k[s+1],k[s+2],k[s+3],k[s+4],k[s+5],k[s+6],k[s+7],dn], dx=m[0], listagem0(dx)}; s=w.getMonth()+1
if(d0+k+k[s+1]+k[s+2]+k[s+3]+k[s+4]+k[s+5]+k[s+6]+k[s+7]+k[s+8]+dn == d){
m=[d0,k,k[s+1],k[s+2],k[s+3],k[s+4],k[s+5],k[s+6],k[s+7],k[s+8],dn], dx=m[0], listagem0(dx)}; s=w.getMonth()+1
if(d0+k+k[s+1]+k[s+2]+k[s+3]+k[s+4]+k[s+5]+k[s+6]+k[s+7]+k[s+8]+k[s+9]+dn == d){
m=[d0,k,k[s+1],k[s+2],k[s+3],k[s+4],k[s+5],k[s+6],k[s+7],k[s+8],k[s+9],dn], dx=m[0], listagem0(dx)}
</script>
2016jan
sext...1...8...15...22...29
saba...2...9...16...23...30
dom...3...10...17...24...31
segu...4...11...18...25
terç...5...12...19...26
quar...6...13...20...27
quin...7...14...21...28
2016fev
segu...1...8...15...22...29
terç...2...9...16...23
quar...3...10...17...24
quin...4...11...18...25
sext...5...12...19...26
saba...6...13...20...27
dom...7...14...21...28
2016mar
terç...1...8...15...22...29
quar...2...9...16...23...30
quin...3...10...17...24...31
sext...4...11...18...25
saba...5...12...19...26
dom...6...13...20...27
segu...7...14...21...28
2016abr
sext...1...8...15...22...29
saba...2...9...16...23...30
dom...3...10...17...24
segu...4...11...18...25
terç...5...12...19...26
quar...6...13...20...27
quin...7...14...21...28
2016mai
dom...1...8...15...22...29
segu...2...9...16...23...30
terç...3...10...17...24...31
quar...4...11...18...25
quin...5...12...19...26
sext...6...13...20...27
saba...7...14...21...28
2016jun
quar...1...8...15...22...29
quin...2...9...16...23...30
sext...3...10...17...24
saba...4...11...18...25
dom...5...12...19...26
segu...6...13...20...27
terç...7...14...21...28
2016jul
sext...1...8...15...22...29
saba...2...9...16...23...30
dom...3...10...17...24...31
segu...4...11...18...25
terç...5...12...19...26
quar...6...13...20...27
quin...7...14...21...28
2016ago
segu...1...8...15...22...29
terç...2...9...16...23...30
quar...3...10...17...24...31
quin...4...11...18...25
sext...5...12...19...26
saba...6...13...20...27
dom...7...14...21...28
2016set
quin...1...8...15...22...29
sext...2...9...16...23...30
saba...3...10...17...24
dom...4...11...18...25
segu...5...12...19...26
terç...6...13...20...27
quar...7...14...21...28
2016out
saba...1...8...15...22...29
dom...2...9...16...23...30
segu...3...10...17...24...31
terç...4...11...18...25
quar...5...12...19...26
quin...6...13...20...27
sext...7...14...21...28
2016nov
terç...1...8...15...22...29
quar...2...9...16...23...30
quin...3...10...17...24
sext...4...11...18...25
saba...5...12...19...26
dom...6...13...20...27
segu...7...14...21...28
2016dez
quin...1...8...15...22...29
sext...2...9...16...23...30
saba...3...10...17...24...31
dom...4...11...18...25
segu...5...12...19...26
terç...6...13...20...27
quar...7...14...21...28
Estou satisfeito com o que consegui///muito obrigado///nadir

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.