Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - celest275

#1
Desarrollo Web / Resta de 2 Fechas enJS o PHP
18 Marzo 2021, 07:31 AM
Estoy trabajando en un formulario con 2 input tipo date, donde selecciono una fecha inicial, y fecha final, y quería obtener la resta de ambas fechas, y que lo coloque en otro input por medio de javascript,

Ejemplo si en el primer input selecciono la fecha 20/02/2021 y el el segundo input selecciono 15/02/21 obtenga la resta de 5

Código (html5) [Seleccionar]
<!DOCTYPE html>
<html>
   <head>
       <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
   </head>
   <body>
       <input type="date" name="fecha_Inicial" id="fecha_Inicial">
       <input type="date" name="fecha_Final" id="fecha_Final">
       <input type="text" name="resta" id="resta">
   </body>
   
</html>


En JS tengo

Código (javascript) [Seleccionar]
    $("#fecha_Inicial, #fecha_Final,#resta").change(function(){

   var FechaInicial =  $("#fecha_Inicial").val();
   
   var FechaFinal = $("#fecha_Final").val();
   
   
   var diferencia = Math.abs(fecha_Inicial.getTime()-fecha_Final.getTime());

       $("#resta").val(diferencia);


Pero no obtengo nada
#2
Hola, queria saber si alguien me podia dar una idea para resolver este problema, se muy poco de pilas, pero quisiera saber o por lo menos tener una idea de como realizar este programa, aviso: no es tarea, es simplemente un programa que me llamo la atencion demasiado y quisiera saber como hacerlo

#3
Hola, me pidieron una tarea que Escriba un programa que solicite al usuario la ruta de un archivo de texto que contenga instrucciones para pila y las ejecute, osea que si en el archivo esta escrita la palabra "Push" ejecute la funcion push, e igual se aparece un signo de "+,-,*,/" y numeros entre ellos haga la notacion polaca inversa, pero me tiran errores a la hora de llamar las funciones  :( :( Ayuda por favor   

#include<conio.h>
#include<iostream.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#include<fstream.h>


class Pila; //Clase prototipo
class nodo
{
double dato;
nodo *sig;  // ESTADOS

//-------------CREAR CONSTRUCTOR---------

nodo();
friend Pila ;
};
//--------------------------------------
class Pila
{
nodo *tope;
int nnodos;

public:
//---------CONSTRUCTOR PILA-----------
Pila();
void Push(double);
double Top();
void Drop ();
double Pop ();
void Show();
void Clear();
~Pila();
void swap();  //Cambiar los dos nodos en el topo de la pila los dos primeros.
void Dup(); //Duplica el nodo  que esta en el tope de la pila.
void Depth();
void Pick(); //Trabaja con PUSH
void DupN(); //Trabaja con PUSH
void DropN();
void Roll();
void RollD();
void Add();
void Sub();
void Mult();
void Divi();
void Pot();
};

//------------CONSTRUCTOR DE PILA---------------
Pila::Pila()
{
tope=NULL;
nnodos=0;
}
//------------CONSTRUCTOR DEL NODO---------

nodo::nodo ()
{
dato=0;
sig=NULL;
}

void main()
{
   FILE *Archivo=NULL;
   char letra;
char arc[50];
int num=0;
char cadena[50];

   cout<<"Ingrese la ruta y nombre del archivo: "<<endl;
   cin >> "%s" >> arc;

   Archivo = fopen(arc,"r");
   if(Archivo == NULL)
{
    cout<<"No se ha encontrado el archivo";
   }
   else
   {
    while(feof(Archivo)==0)
      {
      fscanf(Archivo,"%s",&cadena);
         num = atof(cadena);
if(num != 0)
{
         Push(num);
         }
         if(strcmp(cadena,"top") == 0 ){
Top();
            }


if( strcmp(cadena,"drop") == 0 )
Drop();


if( strcmp(cadena,"pop") == 0 )
Pop();


if( strcmp(cadena,"show") == 0 )
Show();


if( strcmp(cadena,"clear") == 0 )
Clear();

if( strcmp(cadena,"swap") == 0 )
Swap();


if( strcmp(cadena,"depth") == 0 )
Depth();


if( strcmp(cadena,"dup") == 0 )
Dup();

if( strcmp(cadena,"pick") == 0 )
Pick();


if( strcmp(cadena,"dupn") == 0 )
DupN();


if( strcmp(cadena,"dropn") == 0 )
DropN();

if( strcmp(cadena,"roll") == 0 )
Roll();


if( strcmp(cadena,"rolld") == 0 )
RollD();


if( strcmp(cadena,"+") == 0 )
Add(Lista);


if( strcmp(cadena,"-") == 0 )
Sub();


if( strcmp(cadena,"*") == 0 )
Mult();

//Division
if( strcmp(cadena,"/") == 0 )
Div();

//Exponente
if( strcmp(cadena,"^x") == 0 )
Pot();
}
}
fclose(Archivo);
cout<<"\nPila:\n"<<endl;
//show();
clear2();
system("PAUSE");
}



//--------------CONSTRUCTOR DE PUSH --------------- (lifo)
void Pila::Push(double d)
{
nodo *nuevo=new nodo;
nuevo->dato=d;
nuevo->sig=tope;
tope=nuevo;
nnodos ++;
}

//---------------CONSTRUCTOR DE TOP-------------
double Pila::Top()
{
return ((tope)?tope->dato:NULL);
//operador condicional (cond)?rv:rf
}

//--------------CONSTRUCTOR DE DROP-----------
void Pila::Drop()
{
if (tope)
   {
  nodo *tmp=tope;
  tope=tope->sig;
  delete tmp;
  nnodos --;
  }
}
//----------CONSTRUCTOR DE POP----------------
double Pila::Pop ()
{
double dtmp=Top();
Drop();
return dtmp;
}
//------------------------------------------------


void Pila::Show()
{
nodo *tmp=tope;
while(tmp)
{
    cout<<tmp->dato<<",";
tmp=tmp->sig;
}
   cout<<endl;
}

void Pila::Clear()
{
while(nnodos>0)
Drop();
}

Pila::~Pila()
{
Clear() ;
}

void Pila::swap()
{
if(nnodos>=2)
{
    nodo *tmp=tope;
tope=tope->sig;
tmp->sig=tope->sig;
tope->sig=tmp;
}
}

void Pila::Dup()
{
if(tope)
Push(Top());
}

void Pila::Depth()
{
Push(nnodos);
}

void Pila::Pick()
{
if(tope)
{
    double n=Pop(); //Borra el dato y lo retorna n guarda el numero del nodo que quiero copiar
if((n<=nnodos) &&(n>=1))
{
          nodo *tmp=tope;
for(int x=1;x<n;x++)
tmp=tmp->sig;
Push(tmp->dato);
      }
   }
}

void Pila::DupN()
{
if(tope)
{ double N=Pop();
    if(N>=1)
      {
        N=(N<nnodos)?N:nnodos;
         for(int x=1; x<=N; x++)
         { Push(N);
          Pick();
         }
      }
   }
}

void Pila::DropN()
{
if(tope)
{ double N=Pop();
    if(N>=1)
      {
        N=(N<nnodos)?N:nnodos;
         for(int x=1; x<=N; x++)
         Drop();
      }
   }
}

void Pila::Add()
{
if(nnodos>=2)
    {
      Push(Pop()+Pop());
      }
}

void Pila::Sub()
{
if(nnodos>=2)
    {
      swap();
         Push(Pop()-Pop());
      }
}

void Pila::Mult()
{
if(nnodos>=2)
    {
      Push(Pop()*Pop());
      }
}

void Pila::Divi()
{
if(nnodos>=2)
    {
      swap();
         Push(Pop()/Pop());
      }
}

void Pila::Pot()
{
if(nnodos>=2)
    {
      Push(pow(Pop(),Pop()));
      }
}

void Pila::Roll()
{
    if (tope)
   {
      double N=Pop();

       nodo *tmp = tope;

             for(double x=1 ; x<N ; x++)
         {
             tmp = tmp->sig;
         }

         Push(tmp->dato);
   }
}

void Pila::RollD()
{
if(tope)
{
double n = Pop();
Depth();
if(n <= Pop())
{
nodo *tmp = tope;
for(double x=1; (x<n-1) && (tmp->sig) ;x++)
tmp = tmp -> sig;
Push(Pop());
}
}
}