Hola
Simplemente he añadido esto a tu código
Basándome en lo que ha dicho:
Lo que hago es obtener el total de minutos y establezco la condición de que si el total de minutos es menor o igual de 60 (o sea una hora) pues el Precio sea igual a 500.
Por otro lado también dices que:
Entonces establezco la condición de que si ha pasado más de una hora es decir más de 60 minutos entonces, resta 60 minutos del total que son los 500 y luego divide el resto por 15 para obtener el número de cuartos de hora. El resultado lo multiplica por 150, ya que como has dicho cada quince minutos después de la hora se multiplica por 150. (
esto me recuerda a los problemas de mates...). Finalmente suma 500 más el producto del total de cuarto de horas por 150.
Por ejemplo:
De 12:00 a 12:15 ---> es igual a 15 minutos < 60 min. ---> Precio = 500
De 12:00 a 13:00 ---> es igual a 60 minutos = 60 min. ---> Precio = 500
De 12:00 a 13:10 ----> es igual a 70 minutos > 60 min ---> Precio = 500 + CInt((70-60)/15)*150 = 500 ... ya que 70-60 = 10 minutos y CInt(10/15) = 0 cuartos de hora.
De 12:00 a 13:30 ---> .... > 60 min. ----> Precio = 500 + CInt((90-60)/15)*150 = 800 ya que 90-60= 30 minutos y CInt(30/15) = 2 cuartos de hora, 2 * 150= 300
y 500 + 300 = 800
(es una versión muy simplificada de la función CalculateMoney de Elektro . Pero que conste que la vi después, eh
)
Sl2s
Código (vbnet) [Seleccionar]
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim fechaini As DateTime
Dim fechafin As DateTime
DateTime.TryParse(TextBox1.Text, fechaini) ' 12:00
DateTime.TryParse(TextBox2.Text, fechafin) '13:00
Dim dif As TimeSpan = fechafin - fechaini
Dim Precio As Integer = 0
Dim TotalMinutos As Integer = (dif.Hours * 60 + dif.Minutes)
If TotalMinutos < 60 Or TotalMinutos = 60 Then Precio = 500
If TotalMinutos > 60 Then Precio = 500 + (CInt((TotalMinutos - 60) / 15)) * 150
MsgBox(Precio)
End Sub
End Class
Simplemente he añadido esto a tu código
Código (vbnet) [Seleccionar]
...
Dim Precio As Integer = 0
Dim TotalMinutos As Integer = (dif.Hours * 60 + dif.Minutes)
If TotalMinutos < 60 Or TotalMinutos = 60 Then Precio = 500
If TotalMinutos > 60 Then Precio = 500 + (CInt((TotalMinutos - 60) / 15)) * 150
...
Basándome en lo que ha dicho:
Código [Seleccionar]
por ejemplo un auto llego 12:00 y salio 13:00 = 01:00 estuvo una hora el cobro seria $500
¿si el vehículo estuvo ejemplo llego 12:00 y salio 12:15 = estuvo 15 minutos pero igual se le cobra los $500?
Lo que hago es obtener el total de minutos y establezco la condición de que si el total de minutos es menor o igual de 60 (o sea una hora) pues el Precio sea igual a 500.
Por otro lado también dices que:
Código [Seleccionar]
entoces cada 15 minutos depues de la hora deberia cobrarse $150
Entonces establezco la condición de que si ha pasado más de una hora es decir más de 60 minutos entonces, resta 60 minutos del total que son los 500 y luego divide el resto por 15 para obtener el número de cuartos de hora. El resultado lo multiplica por 150, ya que como has dicho cada quince minutos después de la hora se multiplica por 150. (
![:-( :-(](https://forum.elhacker.net/Smileys/navidad/cry.gif)
Por ejemplo:
De 12:00 a 12:15 ---> es igual a 15 minutos < 60 min. ---> Precio = 500
De 12:00 a 13:00 ---> es igual a 60 minutos = 60 min. ---> Precio = 500
De 12:00 a 13:10 ----> es igual a 70 minutos > 60 min ---> Precio = 500 + CInt((70-60)/15)*150 = 500 ... ya que 70-60 = 10 minutos y CInt(10/15) = 0 cuartos de hora.
De 12:00 a 13:30 ---> .... > 60 min. ----> Precio = 500 + CInt((90-60)/15)*150 = 800 ya que 90-60= 30 minutos y CInt(30/15) = 2 cuartos de hora, 2 * 150= 300
y 500 + 300 = 800
(es una versión muy simplificada de la función CalculateMoney de Elektro . Pero que conste que la vi después, eh
![:laugh: :laugh:](https://forum.elhacker.net/Smileys/navidad/laugh.gif)
Sl2s