JavaScript - Separar numeros, sumarlos y devoler un resultado

 
Vista:

Separar numeros, sumarlos y devoler un resultado

Publicado por Jaime Andres (1 intervención) el 01/03/2007 17:29:18
Hola a todos necesito algo de ayuda con esto......

La cuestion es que necesito aplicar este concepto de numerologia de manera que se calcule automaticamente

"sumar los números individuales de la fecha de nacimiento (28/10/1944): 2+8+1+0+1+9+4+4 = 29. A continuación sumamos los dos números que componen esta última cifra: 2+9 = 11. Ahora volvemos a sumar el resultado para lograr un solo dígito: 1+1 = 2. Éste es el número de nacimiento, el 2."

los datos se obtendrian de un fomulario con listas desplegables.....

Agradeceria mucho su ayuda.....

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Separar numeros, sumarlos y devoler un resultad

Publicado por Gonzalo (107 intervenciones) el 01/03/2007 18:03:24
/*
e. g. reduce("1/3/2007") === "5"
*/

function reduce(fecha) {
var n = fecha.replace(/\//g,'').split('');
while(n.length>1) {
var r = 0;
for(i=0;i<n.length;i++) r +=parseInt(n[i],10);
n = r.toString().split('');
}
return n[0];
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Separar numeros, sumarlos y devoler un resultad

Publicado por Gonzalo (107 intervenciones) el 01/03/2007 18:57:28
Perdón, evidentemente es
e. g. reduce("1/3/2007") === "4"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Separar numeros, sumarlos y devoler un resultad

Publicado por Jaime Andres (2 intervenciones) el 01/03/2007 19:10:05
Gracias por tu ayuda pero la verdad se poco sobre javascript, me podrias decir como quedaria implementado en un archivo.html.

Mil Gracias....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Separar numeros, sumarlos y devoler un resultad

Publicado por Amateur (2 intervenciones) el 11/07/2017 07:38:31
Que tal, soy nuevo en esto de la programación, anduve experimentando y bueno, este sería mi primer algoritmo :D
Estoy seguro que se puede mejorar con loops while, voy a intentarlo y lo subo....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<!DOCTYPE html>
<html>
<head>
	<title>Calculadora de Numerolog&iacute;a</title>
	<meta http-equiv="refresh" content="60"/>
	<meta charset="iso-8859-1" />
	<script type="text/JavaScript">
		function calcolare_data(){
			var dia = parseInt(document.getElementById("giorno").value);
			var mes = parseInt(document.getElementById("mese").value);
			var ano = parseInt(document.getElementById("anno").value);
 
			// Reduce el dia a su minima expresion, descontando las decenas una por una...		
				if (dia >= 30 && dia <= 31){
					dia=(dia - 30)+3
				}
				if (dia >= 20 && dia <= 29){
					dia = (dia - 20)+2;
				}
				if (dia >= 10 && dia <= 19){
					dia = (dia -10)+1;
				}
				// Ocupa dos líneas iguales por que el resultado aún puede ser +10
				if (dia >= 10 && dia <= 19){
					dia = (dia -10)+1;
				}
 
			// Reduce ahora el mes a su mínima expresión, unicamente una decena.
				if (mes >= 10 && mes <= 12){
					mes = (mes-10)+1;
				}
 
			// Reduce el año por millares, despues por centenas y al ultimo por decenas.
				if (ano >= 2000 && ano <= 2900){
					ano = (ano - 2000)+2;
				}
				if (ano >= 1900 && ano <= 1999){
					ano = (ano - 1900)+10;
				}
				if (ano >= 900 && ano <= 999){
					ano = (ano - 900) + 9;
				}
				if (ano >= 100 && ano <= 199 ){
					ano = (ano - 100)+1;
				}
				if (ano >= 90 && ano <= 99){
					ano = (ano - 90)+9;
				}
				if (ano >= 80 && ano <= 89){
					ano = (ano - 80)+8;
				}
				if (ano >= 70 && ano <= 79){
					ano = (ano - 70)+7;
				}
				if (ano >= 60 && ano <= 69){
					ano = (ano - 60)+6;
				}
				if (ano >= 50 && ano <= 59){
					ano = (ano - 50)+5;
				}
				if (ano >= 40 && ano <= 49){
					ano = (ano - 40)+4;
				}
				if (ano >= 30 && ano <= 39){
					ano = (ano - 30)+3;
				}
				if (ano >= 20 && ano <= 29){
					ano = (ano - 20)+2;
				}
				if (ano >= 10 && ano <= 19){
					ano = (ano - 10)+1;
				}
				if (ano >= 10 && ano <= 19){
					ano = (ano - 10)+1;
				}
 
			// Declara una variable nueva que es la suma de los datos obtenidos y repite el proceso.
				var fecha = dia + mes + ano;
				if (fecha >= 10 && fecha <= 19){
					fecha = (fecha-10)+1;
				}
				if (fecha >= 10 && fecha <= 19){
					fecha = (fecha-10)+1;
				}
				var resultado = fecha;
				resultado.toString;
 
			//Muestra el resultado en el documento HTML
				document.getElementById("Total").innerHTML = "Su numero es " + resultado;
 
		}
	</script>
 
</head>
<body>
	<h1>Calculadora de Numerolog&iacute;a</h1>
	<a>Por favor ingresa tu fecha de nacimiento</a><br>
	<select id="giorno" name="giorno">
		<optgroup label="D&iacute;a">
			<option value="1">01</option>
			<option value="2">02</option>
			<option value="3">03</option>
			<option value="4">04</option>
			<option value="5">05</option>
			<option value="6">06</option>
			<option value="7">07</option>
			<option value="8">08</option>
			<option value="9">09</option>
			<option value="10">10</option>
			<option value="11">11</option>
			<option value="12">12</option>
			<option value="13">13</option>
			<option value="14">14</option>
			<option value="15">15</option>
			<option value="16">16</option>
			<option value="17">17</option>
			<option value="18">18</option>
			<option value="19">19</option>
			<option value="20">20</option>
			<option value="21">21</option>
			<option value="22">22</option>
			<option value="23">23</option>
			<option value="24">24</option>
			<option value="25">25</option>
			<option value="26">26</option>
			<option value="27">27</option>
			<option value="28">28</option>
			<option value="29">29</option>
			<option value="30">30</option>
			<option value="31">31</option>
		</optgroup>
	</select>
	<select id="mese" name="mese">
		<optgroup label="Mes">
			<option value="1">Enero</option>
			<option value="2">Febrero</option>
			<option value="3">Marzo</option>
			<option value="4">Abril</option>
			<option value="5">Mayo</option>
			<option value="6">Junio</option>
			<option value="7">Julio</option>
			<option value="8">Agosto</option>
			<option value="9">Septiembre</option>
			<option value="10">Octubre</option>
			<option value="11">Noviembre</option>
			<option value="12">Diciembre</option>
		</optgroupg>
	</select>
	<input type="number" id="anno" min="1900" max="2900" /><br>
	<input type="button" value="Calcula"/ onclick="calcolare_data()" />
	<h2 id="Total"></h2>
 
 
</body>
</html>

Estoy seguro de que con bucles puede mejorar bastante y reducirse el tamaño del codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Separar numeros, sumarlos y devoler un resultad

Publicado por Amateur (2 intervenciones) el 11/07/2017 08:06:43
Y si mejoro bastante, se eliminaron chingo de lineas.
Te dejo la respuesta
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<!DOCTYPE html>
<!-- Calculadora de Numerología versión 2.0 -->
<html>
<head>
	<title>Calculadora de Numerolog&iacute;a</title>
	<meta http-equiv="refresh" content="60"/>
	<meta charset="iso-8859-1" />
	<script type="text/JavaScript">
		function calcolare_data(){
			var dia = parseInt(document.getElementById("giorno").value);
			var mes = parseInt(document.getElementById("mese").value);
			var ano = parseInt(document.getElementById("anno").value);
			while (dia >= 10){
				dia = (dia - 10)+1;
			}
			while (mes >= 10){
				mes = (mes - 10)+1;
			}
			while (ano >= 10){
				ano = (ano -10)+1;
			}
			var fecha = dia + mes + ano;
 
			while (fecha >= 10 ){
				fecha = (fecha -10)+1;
			}
 
			var resultado = fecha;
			resultado.toString;
			document.getElementById("Total").innerHTML = "Su numero es " + resultado;
 
		}
	</script>
 
</head>
<body>
	<h1>Calculadora de Numerolog&iacute;a</h1>
	<a>Por favor ingresa tu fecha de nacimiento</a><br>
	<select id="giorno" name="giorno">
		<optgroup label="D&iacute;a">
			<option value="1">01</option>
			<option value="2">02</option>
			<option value="3">03</option>
			<option value="4">04</option>
			<option value="5">05</option>
			<option value="6">06</option>
			<option value="7">07</option>
			<option value="8">08</option>
			<option value="9">09</option>
			<option value="10">10</option>
			<option value="11">11</option>
			<option value="12">12</option>
			<option value="13">13</option>
			<option value="14">14</option>
			<option value="15">15</option>
			<option value="16">16</option>
			<option value="17">17</option>
			<option value="18">18</option>
			<option value="19">19</option>
			<option value="20">20</option>
			<option value="21">21</option>
			<option value="22">22</option>
			<option value="23">23</option>
			<option value="24">24</option>
			<option value="25">25</option>
			<option value="26">26</option>
			<option value="27">27</option>
			<option value="28">28</option>
			<option value="29">29</option>
			<option value="30">30</option>
			<option value="31">31</option>
		</optgroup>
	</select>
	<select id="mese" name="mese">
		<optgroup label="Mes">
			<option value="1">Enero</option>
			<option value="2">Febrero</option>
			<option value="3">Marzo</option>
			<option value="4">Abril</option>
			<option value="5">Mayo</option>
			<option value="6">Junio</option>
			<option value="7">Julio</option>
			<option value="8">Agosto</option>
			<option value="9">Septiembre</option>
			<option value="10">Octubre</option>
			<option value="11">Noviembre</option>
			<option value="12">Diciembre</option>
		</optgroupg>
	</select>
	<input type="number" id="anno" min="1900" max="2900" /><br>
	<input type="button" value="Calcula"/ onclick="calcolare_data()" />
	<h2 id="Total"></h2>
 
 
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar