thierylaurent
Messages postés45Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention23 juin 2008
-
2 juin 2008 à 15:09
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 2009
-
3 juin 2008 à 00:58
bonjour, a tous,
voila je vous explique je dois concevoir un programme en vb qui aura une durée limiter dans le temps (limiter a un ans) par rapport a une date que je lui exprime ( Dim date_debut New System.DateTime(2008, 6, 2) et une date de fin (Dim date_fin New System.DateTime(2009, 6, 1) le probleme que je pose n'est pas la fermeture du programme arrivé a ce jour la c'est de pouvoir effectuer 1 mois avant la date d'expiration du programme une messagebox qui s'affichera tout les jours jusqu'a la date de fin en précisant le nombre de jour restant ( ex: il ne vout reste plus que X jour pour pouvoir effectuer les mises a jour) voila aidez moi s'il vous plait cela fait environ trois a quatre jour que je suis dans la panique et que je galère merci!!
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 2 juin 2008 à 15:40
Salut,
Voici un petit exemple qui pourra t'aider :
Dim date_fin
As
Date =
CType(
"01/06/2009",
Date)
' On définit la date de fin seulement la date avec System.DateTime, tu définis la date et l'heure
Dim date_test
As Date =
CType(
My.Computer.Clock.LocalTime.ToShortDateString,
Date)
' On récupère la date actuelle sur le PC
If DateDiff(DateInterval.Month, date_test, date_fin) <= 1
Then
' On compare les dates & DateDiff nous retourne la différence en mois
' Si le nombre de mois <= 1 mois, on affiche un message
MsgBox(
"Il Reste " + DateDiff(DateInterval.Day, date_test, date_fin).ToString +
" jours")
' Affichage d'un message avec DateDiff pour récupérer la différence entre les deux dates
' en jours
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 2 juin 2008 à 16:40
Salut,
Dim date_fin = New System.DateTime(2009, 6, 1)
Dim Span As TimeSpan = Now - date_fin
If Span.TotalDays < 30 then
MsgBox("Il vous reste " & Span.TotalDays & " jours")
End If
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 3 juin 2008 à 00:49
impecable sa marche mais comment faut il que je fasse pour que le
Span.TotalDays soit en chiffre arrondi car pour l'instant il me donne
plein de chiffre aprés la virgule
Tu en fais un nombre entier: CInt(Span.TotalDays)
Ou alors pour prendre l'entier au dessus: Math.Ceiling(Span.TotalDays)
Entier en dessous: Math.Floor(Span.TotalDays), ce qui est équivalent à Span.Days
et aussi comment fait je si je veut aussi afficher le temps qu'il me reste avec le nombre d'heure et de minute ? Regarde les propriétés du TimeSpan... Pour afficher les jours, heures et minutes:
MsgBox("Il reste " & Span.Days & " jours " & Span.Hours & " heures et " & Span.Minutes & " minutes")
La différence avec le "Total" (TotalHours <> Hours) :
Si Days=2Hours=3Minutes=30 : TotalDays (2) + (3/24) + (30/60/24) 2.14583333333...
TotalHours (2*24) + (3) + (30/60) 51.5TotalMinutes (2*24*60) + (3*60) + (30) 3'090
en tout cas je dois pâs avoir la dernière version du framework car j'ai du utilisé
Dim Span As TimeSpan = Now.Subtract(date_fin)
au lieu de
Dim Span As TimeSpan = Now - date_fin
En regardant de plus près l'erreur signalé par fauve (L'opérateur '-' n'est pas défini pour les types 'Date' et 'Object'), j'ai vu que j'avais oublié de déclarer ma variable date_fin:
Dim date_fin As DateTime = New System.DateTime(2009, 6, 1)
ou plus court:
Dim date_fin As New System.DateTime(2009, 6, 1)
Mais pour être sûr que c'était bien le problème, j'ai testé le code sans la déclaration: ça fonctionne quand même! Etrange... (sur la version 3.5 aussi)
Mais essais en déclarant date_fin As DateTime pour voir si ça fonctionne...
a au fait est ce que vous s'avez par hasard ou pourais je trouvé de la dock tres bien élaboré pour travailler en vb?
Non pas de site particulier, tout dépend de ce que tu veux apprendre. Pour apprendre la syntaxe et des techniques de codage, rien de mieux que des exemples. Une fois que t'es dans ta prog, perso je commence presque toujours par MSDN si il me faut des détails sur une classe. Si ça ne me suffit pas, Google...
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 3 juin 2008 à 00:58
En fait, il faut faire Dim Span As TimeSpan = date_fin - Now pas Dim Span As TimeSpan = Now - date_fin
Et pour la déclaration oublié, c'est parce que j'ai fais un copier-coller de ton code
par rapport a une date que je lui exprime ( Dim date_debut = New
System.DateTime(2008, 6, 2) et une date de fin (Dim date_fin = New
System.DateTime(2009, 6, 1)
fauve> Pourquoi convertir la date en String pour la reconvertir en Date?
Dim date_test
As Date =
CType(
My.Computer.Clock.LocalTime.ToShortDateString,
Date)
Dim date_fin
AsDate =
CType(
"01/06/2009",
Date)
Vous n’avez pas trouvé la réponse que vous recherchez ?
thierylaurent
Messages postés45Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention23 juin 2008 2 juin 2008 à 21:50
impecable sa marche mais comment faut il que je fasse pour que le Span.TotalDays soit en chiffre arrondi car pour l'instant il me donne plein de chiffre aprés la virgule.
et aussi comment fait je si je veut aussi afficher le temps qu'il me reste avec le nombre d'heure et de minute ?
en tout cas je dois pâs avoir la dernière version du framework car j'ai du utilisé
Dim Span As TimeSpan = Now.Subtract(date_fin)
au lieu de
Dim Span As TimeSpan = Now - date_fin
c'est quoi ton framework pourtant il me semble que j'ai le framework 3.5 sur mon visual studio
a au fait est ce que vous s'avez par hasard ou pourais je trouvé de la dock tres bien élaboré pour travailler en vb?