none
como comparar duas datas? RRS feed

  • Pergunta

  • estou fazer um site que gere automaticamente orçamento sobre cargas a transportar:

    na parte do orçamento tem as datas do local de carga e de descarga, o local de carga nunca pode maior do que da descarga....        

    ---- dia carga

     <td>
                    Data:<em style="font-size:12px; font-family:Arial; font-weight:bold; color:Red"> * &nbsp;</em> <asp:TextBox ID="TxtDtCarga" 
                        runat="server" Width="95px"></asp:TextBox>
                    <asp:CalendarExtender ID="CalendarExtender1" runat="server" 
                        DaysModeTitleFormat="MMMM - yyyy" PopupPosition="BottomRight" 
                        TargetControlID="TxtDtCarga" TodaysDateFormat="d - MMMM - yyyy">
                    </asp:CalendarExtender>

                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hora: <asp:TextBox id="TxtHoraCarga" runat="server" Width="25px" />:<asp:TextBox id="TxtMinutosCarga" runat="server" Width="25px" />

    </td>

                    

    ----- dia descarga

    <td>
                     Data:<em style="font-size:12px; font-family:Arial; font-weight:bold; color:Red"> *</em>&nbsp;<asp:TextBox ID="TxtDtDescarga" 
                        runat="server" Width="95px"></asp:TextBox>
                    <asp:CalendarExtender ID="CalendarExtender2" runat="server" 
                        DaysModeTitleFormat="MMMM - yyyy" PopupPosition="BottomRight" 
                        TargetControlID="TxtDtDescarga" TodaysDateFormat="d - MMMM - yyyy">
                    </asp:CalendarExtender>

                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hora: <asp:TextBox id="TxtHoraDescarga" runat="server" Width="25px" />:<asp:TextBox id="TxtMinutosDescarga" runat="server" Width="25px" />

                </td>


    terça-feira, 29 de maio de 2012 15:52

Respostas

  • Veja

    DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
    DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
    int result = DateTime.Compare(date1, date2);
    string relationship;
    
    if (result < 0)
       relationship = "is earlier than";
    else if (result == 0)
       relationship = "is the same time as";         
    else
       relationship = "is later than";
    
    Console.WriteLine("{0} {1} {2}", date1, relationship, date2);
    // The example displays the following output:
    //    8/1/2009 12:00:00 AM is earlier than 8/1/2009 12:00:00 PM


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    • Marcado como Resposta Harley Araujo sexta-feira, 1 de junho de 2012 11:56
    quarta-feira, 30 de maio de 2012 12:01
    Moderador
  • Ah senhores, plz. Pra que dificultar tanto?

    hsilva, basta usar um controle pronto de validação: Use o controle CompareValidator, dentro da guia Validação, na sua Toolbox. Após configurar os controles que serão validados, basta setar o atributo Type para Date.


    Rafael Santos
    E-mail: rsdsantos@gmail.com

    Pequeno Gafanhoto

    • Marcado como Resposta Harley Araujo sexta-feira, 1 de junho de 2012 11:56
    quarta-feira, 30 de maio de 2012 13:48

Todas as Respostas

  • var dataMenor = DateTime.Parse("01/01/2000");           

    var dataMaior = DateTime.Parse("10/10/2023");           

    if (dataMaior > dataMenor)

    //tal coisa



    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    terça-feira, 29 de maio de 2012 15:57
  • var dataMenor = DateTime.Parse("01/01/2000");           

    var dataMaior = DateTime.Parse("10/10/2023");           

    if (dataMaior > dataMenor)

    //tal coisa

    Bom, eu creio que seja isto mesmo! 

    O problema que você está tendo deve ser por conta das "horas-minutos-segundos", fazendo este parse ele só exibi a data mesmo, aí deve resolver!

    terça-feira, 29 de maio de 2012 15:59
  • Verdade.. se o problema for com horas e minutos, basta passar eles tambem pro .Parse:

    var dataMenor = DateTime.Parse("01/01/2000 10:00");
    var dataMaior = DateTime.Parse("01/01/2000 09:00");
    
    if (dataMaior > dataMenor)
         Console.WriteLine("maior");


    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    terça-feira, 29 de maio de 2012 16:02
  • mas antes de enviar pra o email ele vai fazer checar td pra ver se esta correcto... isso tambem funcionar ao checar?

    por exemplo:

    Dim chkDtLocalCarga As Integer

    chkDtLocalCarga = TxtDtCarga.Text.Length

    if...

    ElseIf chkDtLocalCarga < 10 Then
                lblMensagem.Text = "Campo Data de Carga está vazio, ou incorrecto"
                TxtDtCarga.Focus()

    terça-feira, 29 de maio de 2012 16:02
  • hsilva24, não entendi o que você quis dizer.

    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    terça-feira, 29 de maio de 2012 16:03
  • eu estou fazer um site de uma empresa de transportes de mercadorias... antes de enviar para o email o orçamento, programar vai verificar se esta tudo bem e também verificar se as datas estão correctas uma maior que a outra. se estiver mal aparecer um aviso a dizer que a datas na batem certo.

    terça-feira, 29 de maio de 2012 16:11
  • Entendi.. sim, isso vai funcionar.

    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    terça-feira, 29 de maio de 2012 16:14
  • ok... eu vou exprimentar e dps digo te algo :)

    e obrigado pela dica

    terça-feira, 29 de maio de 2012 16:29
  • bem isto dá erro, 

    Var TxtDtCarga = DateTime.Parse("01/01/2000");            
    var TxtDtDescarga  = DateTime.Parse("10/10/2023");    ???

    quarta-feira, 30 de maio de 2012 10:01
  • Qual erro?

    Põe o Var em minusculo.


    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    quarta-feira, 30 de maio de 2012 11:12
  • Veja

    DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
    DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
    int result = DateTime.Compare(date1, date2);
    string relationship;
    
    if (result < 0)
       relationship = "is earlier than";
    else if (result == 0)
       relationship = "is the same time as";         
    else
       relationship = "is later than";
    
    Console.WriteLine("{0} {1} {2}", date1, relationship, date2);
    // The example displays the following output:
    //    8/1/2009 12:00:00 AM is earlier than 8/1/2009 12:00:00 PM


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    • Marcado como Resposta Harley Araujo sexta-feira, 1 de junho de 2012 11:56
    quarta-feira, 30 de maio de 2012 12:01
    Moderador
  • Ah senhores, plz. Pra que dificultar tanto?

    hsilva, basta usar um controle pronto de validação: Use o controle CompareValidator, dentro da guia Validação, na sua Toolbox. Após configurar os controles que serão validados, basta setar o atributo Type para Date.


    Rafael Santos
    E-mail: rsdsantos@gmail.com

    Pequeno Gafanhoto

    • Marcado como Resposta Harley Araujo sexta-feira, 1 de junho de 2012 11:56
    quarta-feira, 30 de maio de 2012 13:48