5 messaggi dal 26 maggio 2012
Ciao a tutti, sono nuova in questo ambiente. Devo fare la gestione listini di vari hotel prendendo in considerazione ogni singolo hotel devo fare una gestione delle date. Quindi metto in una textBox la DataArrivo e in un'altra text la DataPartenza, tutte e due le ho collegate a un extenderCalendario. Tramite un Button vorrei vedere in txtGiorniTrascorsi.text il risultato.
Ora vorrei calcolare i giorni trascorsi tra DataArrivo e DataPartenza,perchè poi devo calcolare gli sconti in base a questi giorni.
Secondo voi è meglio che faccia una tabella DataArrivo e DataPartenza e poi fare una query oppure calcolare direttamente l'intervallo dei giorni?
Potete farmi qualche esempio?
Grazie
420 messaggi dal 23 marzo 2010
Contributi
Fai due textbox con data arrivo e data partenza, magari associate ad un datepicker in jquery e poi tramite LINQ fai il calcolo dei giorni trascorsi lato server.

Non credo che tu abbia la necessità di salvare i parametri di ricerca sul database. tanto alla fine si tratta solo di una query.

Un esempio pratico potrei fartelo in asp.net MVC ma deduco che tu stia usando webforms in questo progetto. Comunque non é difficile. Soprattutto se usi LINQ.
Modificato da Mirko Pastorelli il 27 maggio 2012 09.46 -
5 messaggi dal 26 maggio 2012
Ho fatto due textbox DataArrivo e Data partenza. Con un button vorrei calcolare i giorni trascorsi e visualizzarli in textGiorniTrascorsi.
Potete farmi un esempio del Button_click?
Grazie
6 messaggi dal 28 aprile 2004
ciao ti invio qualche riga di esempio che spero possa esserti utile. L'ho fatto in VB ma dovresti riuscire a convertilo facilmente in C#.
NELLA PAG:

    <table>
        <tr>
            <td>
                <asp:TextBox ID="DataArrivoTextBox" runat="server"></asp:TextBox>
            </td>
            <td>
                <asp:TextBox ID="DataPartenzaTextBox" runat="server"></asp:TextBox>
            </td>
            <td>
                 <asp:Label ID="DurataLabel" runat="server" Text=""></asp:Label>
            </td>
        </tr>
        <tr>
            <td>
                <asp:RequiredFieldValidator ID="DataArrivoRequiredFieldValidator" 
                    runat="server" ErrorMessage="Compilare Data Arrivo" 
                    ControlToValidate="DataArrivoTextBox" ForeColor="Red" 
                    ValidationGroup="ValidazioneSconto" EnableClientScript="true" SetFocusOnError="true"></asp:RequiredFieldValidator>

            </td>
            <td>
                <asp:RequiredFieldValidator ID="DataPartenzaRequiredFieldValidator" 
                    runat="server" ErrorMessage="Compilare Data Partenza" 
                    ControlToValidate="DataPartenzaTextBox" ForeColor="Red" 
                    ValidationGroup="ValidazioneSconto" EnableClientScript="true" SetFocusOnError="true"></asp:RequiredFieldValidator>
            </td>
            <td>
            </td>
        </tr>
        <tr>
            <td colspan="3" >
                 <asp:CompareValidator ID="DataCompareValidator" runat="server" ErrorMessage="La Data di Arrivo deve essere antecendente alla Data di Partenza" ValidationGroup="ValidazioneSconto" Operator="LessThanEqual" ControlToValidate="DataArrivoTextBox" ControlToCompare="DataPartenzaTextBox" ForeColor="Red" Display="Dynamic"></asp:CompareValidator>
                 <asp:CustomValidator ID="DataCustomValidator" runat="server" ErrorMessage="Date Non valide" ValidationGroup="ValidazioneSconto" ForeColor="Red" Display="Dynamic" ></asp:CustomValidator> 
            </td>
        </tr>
        <tr>
            <td colspan="2" >
                <asp:Button ID="CalcolaScontoButton" runat="server" Text="Button"  ValidationGroup="ValidazioneSconto"/>
            </td>
            <td>
                <asp:Label ID="ScontoLabel" runat="server" Text="Label"></asp:Label>
            </td>

        </tr>


    </table>


NEL CODICE:

    Private Sub CalcolaScontoButton_Command(sender As Object, e As System.Web.UI.WebControls.CommandEventArgs) Handles CalcolaScontoButton.Command
        ' Controllo se le textBox delle date contengono date valide
        If IsDate(DataArrivoTextBox.Text) AndAlso IsDate(DataPartenzaTextBox.Text) Then
            DurataLabel.Text = DateDiff("d", DataArrivoTextBox.Text, DataPartenzaTextBox.Text)
            ScontoLabel.Text = CalcolaSconto(CInt(DurataLabel.Text))
        Else
            DurataLabel.Text = String.Empty
            ScontoLabel.Text = String.Empty
        End If
    End Sub

    Private Function CalcolaSconto(ByVal gg As Int32) As Decimal
        'Questa Funzione Calcola lo sconto da applicare al listino
        Return gg / 10
    End Function

    Private Sub DataCustomValidator_ServerValidate(source As Object, args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles DataCustomValidator.ServerValidate
        args.IsValid = IsDate(DataArrivoTextBox.Text) AndAlso IsDate(DataPartenzaTextBox.Text)
    End Sub


Fammi sapere se hai dubbi in proposito.
5 messaggi dal 26 maggio 2012
Questo mi calcola lo sconto in base ai giorni, giusto? volevo avere proprio una text che facesse vedere i giorni trascorsi tra una data e l'altra e sulla base di quella calcolare i giorni..

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.