VB 2010: Vérifier si une heure est comprise entre deux autres.
Résolu/Fermé
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
-
Modifié par Anonyme209 le 23/07/2014 à 11:34
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 - 25 juil. 2014 à 12:30
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 - 25 juil. 2014 à 12:30
A voir également:
- VB 2010: Vérifier si une heure est comprise entre deux autres.
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Clé activation office 2010 gratuit - Télécharger - Sécurité
- Telecharger word 2010 - Télécharger - Traitement de texte
- Microsoft office picture manager 2010 free download - Télécharger - Retouche d'image
8 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
23 juil. 2014 à 11:44
23 juil. 2014 à 11:44
Bonjour,
Voir ceci:
https://plasserre.developpez.com/cours/vb-net/?page=langage-vb8#LV-AB
Voir ceci:
https://plasserre.developpez.com/cours/vb-net/?page=langage-vb8#LV-AB
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
Modifié par Anonyme209 le 23/07/2014 à 19:50
Modifié par Anonyme209 le 23/07/2014 à 19:50
Bonjour,
il y a tellement de chose sur cette page, je ne sais pas où trouver ce que je cherche pourrais tu m'orienter sur le le bout de code qui correspond à ce que je recherche?
il y a tellement de chose sur cette page, je ne sais pas où trouver ce que je cherche pourrais tu m'orienter sur le le bout de code qui correspond à ce que je recherche?
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
23 juil. 2014 à 20:28
23 juil. 2014 à 20:28
J'ai pensé faire (01 janvier 2000 est pour l'exemple.)
Mais je ne suis pas sûr que ça marche à tout les coups. Merci de me renseigner sur mon code et, peut-être, m'en donner un plus fonctionnel.
Dim diff = DateDiff("n", heuredebut & ":" & minutedebut, heurefin & ":" & minutefin) If DateDiff("n", heuredebut & ":" minutedebut, Date.now.Hour & ":" & Date.now.Minute) > diff or DateDiff("n", heuredebut & ":" minutedebut, Date.now.Hour & ":" & Date.now.Minute) < 0 Then MsgBox("en dehors des horaires autorisées!") End if
Mais je ne suis pas sûr que ça marche à tout les coups. Merci de me renseigner sur mon code et, peut-être, m'en donner un plus fonctionnel.
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
Modifié par Anonyme209 le 23/07/2014 à 21:44
Modifié par Anonyme209 le 23/07/2014 à 21:44
Bonjour, excusez moi pour le double post, mais le code de mon message d'avant était très loin d'être correct.
J'ai fait des modifications et ça à l'air de marcher (bien que le code ne soit pas très "propre") TextBox1 : heuredebut, TextBox2: minutedebut, TextBox3: heurefin, TextBox4: minutefin, TextBox5: Date.now.Hour, TextBox6: Date.now.Minute.
Ne pourrait-il pas y avoir une commande du genre
Si vous avez un code plus "propre" et surtout plus simple (parce que celui-ci est un peu long) n'hésitez pas à proposer.
J'ai fait des modifications et ça à l'air de marcher (bien que le code ne soit pas très "propre") TextBox1 : heuredebut, TextBox2: minutedebut, TextBox3: heurefin, TextBox4: minutefin, TextBox5: Date.now.Hour, TextBox6: Date.now.Minute.
Dim day As Date = "01/01/2000" Dim day2 As Date = "02/01/2000" Dim diff = DateDiff("n", day & " " & TextBox1.Text & ":" & TextBox2.Text, day & " " & TextBox3.Text & ":" & TextBox4.Text) If diff < 0 Then diff = DateDiff("n", day & " " & TextBox1.Text & ":" & TextBox2.Text, day2 & " " & TextBox3.Text & ":" & TextBox4.Text) If (DateDiff("n", day & " " & TextBox1.Text & ":" & TextBox2.Text, day2 & " " & TextBox5.Text & ":" & TextBox6.Text) > diff) Or (DateDiff("n", day2 & " " & TextBox1.Text & ":" & TextBox2.Text, day2 & " " & TextBox5.Text & ":" & TextBox6.Text) < -diff) Then MsgBox("en dehors") Else MsgBox("entre") End If Else diff = DateDiff("n", day & " " & TextBox1.Text & ":" & TextBox2.Text, day & " " & TextBox3.Text & ":" & TextBox4.Text) If DateDiff("n", day & " " & TextBox1.Text & ":" & TextBox2.Text, day & " " & TextBox5.Text & ":" & TextBox6.Text) > diff Or DateDiff("n", day & " " & TextBox1.Text & ":" & TextBox2.Text, day & " " & TextBox5.Text & ":" & TextBox6.Text) < 0 Then MsgBox("en dehors") Else MsgBox("entre") End If End If
Ne pourrait-il pas y avoir une commande du genre
If DateEntre(date1,date2) Then 'entre else 'en dehors??? (qui fonctionnerait aussi pour les heures..)
Si vous avez un code plus "propre" et surtout plus simple (parce que celui-ci est un peu long) n'hésitez pas à proposer.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
23 juil. 2014 à 22:31
23 juil. 2014 à 22:31
J'ai fait ce genre de chose dans un post que tu avais ouvert. Regarde le 08/07/2014 à 14h38. Le code qui détermine les heures d'été et d'hiver. Il suffit de mettre tes dates et heures à toi pour que cela fonctionne:
https://forums.commentcamarche.net/forum/affich-30455056-vb-recuperer-l-heure-sur-un-serveur-de-temps#p30480712
https://forums.commentcamarche.net/forum/affich-30455056-vb-recuperer-l-heure-sur-un-serveur-de-temps#p30480712
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
24 juil. 2014 à 12:07
24 juil. 2014 à 12:07
voici le code:
J'ai mis DateInterval.Second car le Format est en seconde. Tu peux l'adapter
Dim seuilete As Date Dim seuilhiver As Date Dim dteData As Date Dim iddate As String Dim uneDateC As Decimal 'nombre seconde depuis début année Dim seuileteC As Decimal 'seconde debut année heure debut Dim seuilhiverC As Decimal 'seconde debut année heure fin Dim DateS As String Dim DateD As DateTime Dim Annee As String Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 'mis à jour des dates dteData = Now 'today Annee = (dteData.ToString("yyyy")) 'année en cours iddate = "24/07/" & Annee & " 02:10:30" seuilete = CDate(iddate) '---------------------------------------------------------------------- iddate = "24/07/" & Annee & " 13:10:10" seuilhiver = CDate(iddate) '-------------------------------------------------------------------- 'une petite comparaison DateS = ("01/01/" & Annee) 'Saisir une date : on récupère une string DateD = CDate(DateS) 'Conversion de la string en DateTime uneDateC = DateDiff(DateInterval.Second, DateD, Now) seuileteC = DateDiff(DateInterval.Second, DateD, seuilete) 'différence en jours à partir debut d'année a l'heure d'été seuilhiverC = DateDiff(DateInterval.Second, DateD, seuilhiver) 'différence en jours heure d'hiver à la fin de l'année If (seuileteC < uneDateC) And (uneDateC < seuilhiverC) Then MessageBox.Show("horaires autorisées!", "Heures d'ouverture", MessageBoxButtons.OK, MessageBoxIcon.Information) Else MessageBox.Show("En dehors des horaires autorisées.", "Heures d'ouverture", MessageBoxButtons.OK, MessageBoxIcon.Error) End If End Sub
J'ai mis DateInterval.Second car le Format est en seconde. Tu peux l'adapter
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
25 juil. 2014 à 11:34
25 juil. 2014 à 11:34
J'ai vu que tu utilisais plusieurs TextBox. Je te conseille l'utilisation d'un MaskedTextBox. Tu peux gérer la saisie des dates. Voici un code avec 2 MaskedTextBox nommés:
MaskedDebut et MaskedFin
Il faut ajouter un ToolTip1 pour gérer les avertissements
Bonne programmation
MaskedDebut et MaskedFin
Il faut ajouter un ToolTip1 pour gérer les avertissements
Option Strict On Public Class Form1 Dim seuilete As Date Dim seuilhiver As Date Dim dteData As Date Dim iddate As String Dim uneDateC As Decimal 'nombre jour depuis début année Dim seuileteC As Decimal 'jour debut année heure debut Dim seuilhiverC As Decimal 'jour debut année heure fin Dim DateS As String Dim DateD As DateTime Dim Annee As String 'en savoir plus sur l'utilisation des MaskedTextBox 'http://msdn.microsoft.com/fr-fr/library/kkx4h3az(v=vs.110).aspx Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.ToolTip1.IsBalloon = True MaskedDebut.ValidatingType = GetType(System.DateTime) MaskedFin.ValidatingType = GetType(System.DateTime) Me.MaskedDebut.Mask = "00/00/0000 00:00:00" Me.MaskedFin.Mask = "00/00/0000 00:00:00" MaskedDebut.Text = "25/07/2014 02:10:30" MaskedFin.Text = "25/07/2014 13:07:10" End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 'mis à jour des dates dteData = Now 'today Annee = (dteData.ToString("yyyy")) 'année en cours iddate = MaskedDebut.Text ' "24/07/" & Annee & " 02:10:30" seuilete = CDate(iddate) '---------------------------------------------------------------------- iddate = MaskedFin.Text '"24/07/" & Annee & " 13:07:10" seuilhiver = CDate(iddate) '-------------------------------------------------------------------- 'une petite comparaison DateS = ("01/01/" & Annee) 'Saisir une date : on récupère une string DateD = CDate(DateS) 'Conversion de la string en DateTime uneDateC = DateDiff(DateInterval.Second, DateD, Now) seuileteC = DateDiff(DateInterval.Second, DateD, seuilete) 'différence en secondes à partir debut d'année a l'heure du début seuilhiverC = DateDiff(DateInterval.Second, DateD, seuilhiver) 'différence en secondes heure de la fin à la fin de l'année If (seuileteC < uneDateC) And (uneDateC < seuilhiverC) Then MessageBox.Show("horaires autorisées!", "Heures d'ouverture", MessageBoxButtons.OK, MessageBoxIcon.Information) Else MessageBox.Show("En dehors des horaires autorisées.", "Heures d'ouverture", MessageBoxButtons.OK, MessageBoxIcon.Error) End If End Sub Private Sub MaskedDebut_MaskInputRejected(sender As System.Object, e As System.Windows.Forms.MaskInputRejectedEventArgs) Handles MaskedDebut.MaskInputRejected ToolTip1.ToolTipTitle = "Validité de la saisie" ToolTip1.Show("Nous sommes désolés, mais uniquement des chiffres (0-9) sont autorisés dans les dates.", MaskedDebut, 5000) End Sub Private Sub MaskedFin_MaskInputRejected(sender As System.Object, e As System.Windows.Forms.MaskInputRejectedEventArgs) Handles MaskedFin.MaskInputRejected ToolTip1.ToolTipTitle = "Validité de la saisie" ToolTip1.Show("Nous sommes désolés, mais uniquement des chiffres (0-9) sont autorisés dans les dates.", MaskedFin, 5000) End Sub Public Sub MaskedDebut_TypeValidationCompleted(sender As Object, e As TypeValidationEventArgs) If Not e.IsValidInput Then ToolTip1.ToolTipTitle = "Validité de la valeur de la date" ToolTip1.Show("Nous sommes désolés, mais la valeur que vous avez entré n'est pas une date valide. S'il vous plaît changer la valeur.", MaskedDebut, 5000) e.Cancel = True End If End Sub Public Sub MaskedFin_TypeValidationCompleted(sender As Object, e As TypeValidationEventArgs) If Not e.IsValidInput Then ToolTip1.ToolTipTitle = "Validité de la valeur de la date" ToolTip1.Show("Nous sommes désolés, mais la valeur que vous avez entré n'est pas une date valide. S'il vous plaît changer la valeur.", MaskedFin, 5000) e.Cancel = True End If End Sub End Class
Bonne programmation
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
25 juil. 2014 à 12:30
25 juil. 2014 à 12:30
Bonjour,
il est vrai que d'utiliser une MaskedTextBox au lieu de deux TextBox ou deux NumericUpDown serais plus simple, je n'y avais pas pensé avant.
Quant au ToolTip, je ne connaissais pas avant que tu m'en parles. Je vais essayer tout de suite.
Merci de votre aide.
Je pense que je peux mettre le sujet en résolu.
il est vrai que d'utiliser une MaskedTextBox au lieu de deux TextBox ou deux NumericUpDown serais plus simple, je n'y avais pas pensé avant.
Quant au ToolTip, je ne connaissais pas avant que tu m'en parles. Je vais essayer tout de suite.
Merci de votre aide.
Je pense que je peux mettre le sujet en résolu.