none
Calcular dias entre dos Fechas RRS feed

  • Pregunta

  • Hola Masters...

    Una vez mas por aca, les dejo un problema que me trae de cabeza...

    'Fechas' :(

    Necesito calcular los dias entre dos fechas en el lado del cliente...(JavaScript)

     

    cual es la mejor manera para hacer esto ?

     

     

    Gracias anticipadas

     

     

    Netzio

    lunes, 19 de julio de 2010 20:06

Respuestas

  • Muchas Gracias a Todos por sus prontas respuestas, lejos el mejor Foro...

     

    Les dejo el Link de donde obtuve la soluicion mi Problematica

     

    http://www.elcodigo.com/cgi-bin/DBread.cgi?tabla=scripts&campo=0&clave=21

     

     

    Netzio

    • Marcado como respuesta Netzio martes, 20 de julio de 2010 18:35
    lunes, 19 de julio de 2010 22:36

Todas las respuestas

  • hola

    por ahi esto ayude

    How do I get the number of days between two dates in jQuery?

    si bien la pregunta menciona a jquery, las soluciones aportadas no lo implementan

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 19 de julio de 2010 20:40
  • hola Netzio.... puedes utilizar el control updatepanel, lo que hace que el control que tengas alli adentro tome todas las caracteristicas de un control ajax....

    es muy buen metodo....

    te dejo como puedes hacerlo:

    sin esto no te va a dar::::

     

    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" />
    

     

    despues necesitas trex controles textbox uno para la fecha inicial y otro la final y otro donde se calcula la fecha:

     

    <fieldset>
    								<asp:UpdatePanel ID="UpdatePanel3" runat="server">
    									<ContentTemplate>
    										<asp:TextBox ID="txtFechaInicio" runat="server" AutoPostBack="true" OnTextChanged="txtFechaInicio_OnTextChanged" />
    										<asp:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="txtFechaInicio" Format="dd/MM/yyyy" FirstDayOfWeek="Monday" />
    									</ContentTemplate>
    									<Triggers>
    										<asp:AsyncPostBackTrigger ControlID="txtFechaInicio" EventName="TextChanged" />
    									</Triggers>
    								</asp:UpdatePanel>
    							</fieldset>
    

    el calendar extender lo tome de los controles ajax

    ahora el txt para la fecha final:

     

    							<fieldset>
    								<asp:UpdatePanel ID="UpdatePanel4" runat="server">
    									<ContentTemplate>
    										<asp:TextBox ID="txtFechaFin" runat="server" AutoPostBack="true" OnTextChanged="txtFechaFin_OnTextChanged" />
    										<asp:CalendarExtender ID="CalendarExtender2" runat="server" TargetControlID="txtFechaFin" Format="dd/MM/yyyy" FirstDayOfWeek="Monday" />
    									</ContentTemplate>
    									<Triggers>
    										<asp:AsyncPostBackTrigger ControlID="txtFechaFin" EventName="TextChanged" />
    									</Triggers>
    								</asp:UpdatePanel>
    							</fieldset>
    

     

    el txt donde se muestra el calculo no necesita trigger pues solo muestra, a proposito, el trigger toma la funcion del control.

     

    							<fieldset>
    								<label>Duracion: </label>
    								<asp:Label ID="lblDuracion" runat="server" />
    								<asp:UpdatePanel ID="UpdatePanel5" runat="server">
    									<ContentTemplate>
    										<asp:TextBox ID="txtDuracion" runat="server" AutoPostBack="true" OnTextChanged="txtDuracion_OnTextChanged" />
    									</ContentTemplate>
    									<Triggers>
    										<asp:AsyncPostBackTrigger ControlID="txtDuracion" EventName="TextChanged" />
    									</Triggers>
    								</asp:UpdatePanel>
    							</fieldset>
    

     

    bueno, yo lo deje con el trigger porque puede llegar que teniendo la fecha inicial y la duracion se calcule la fecha final, pero te dejare solo la fecha inicio y final para calcular la duracion:

    protected void txtFechaInicio_OnTextChanged(object sender, EventArgs e)
      {
          DateTime fechainicio = DateTime.Parse(txtFechaInicio.Text);
          DateTime fechafin = DateTime.Parse(txtFechaFin.Text);
    
            TimeSpan duracion = fechafin - fechainicio;
            txtDuracion.Text = duracion.TotalDays.ToString();
    }
    

    para la final haces lo mismo, y estoy seguro que no tendras problemas si lo que quieres es que teniendo la fecha inicial o final y la duracion se calcule la otra, si es lo que llegas a necesitar

     

    espero te sea de ayuda y soluciones el problema, ajax es una buana alternativa

    • Propuesto como respuesta ccmmasi lunes, 19 de julio de 2010 20:43
    • Votado como útil Netzio lunes, 19 de julio de 2010 21:22
    lunes, 19 de julio de 2010 20:41
  • Leandro, gracias por la respuesta...

    pero al pasarlo a JavaScript no funciono...

     

    algun ejemplo sencillo en JavaScript por ahi... :)


    Gracias

     

     

     

    Netzio

    lunes, 19 de julio de 2010 21:19
  • hola

    jsDate

    prueba connesta libreria de javascript, alli tiene botones para probar su funcionaldiad y parece hacerlo correctamente

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 19 de julio de 2010 21:29
  • Muchas Gracias a Todos por sus prontas respuestas, lejos el mejor Foro...

     

    Les dejo el Link de donde obtuve la soluicion mi Problematica

     

    http://www.elcodigo.com/cgi-bin/DBread.cgi?tabla=scripts&campo=0&clave=21

     

     

    Netzio

    • Marcado como respuesta Netzio martes, 20 de julio de 2010 18:35
    lunes, 19 de julio de 2010 22:36