lomatic
Messages postés37Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention 9 octobre 2009
-
4 nov. 2007 à 10:44
mstarsup5
Messages postés527Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention10 octobre 2013
-
5 nov. 2007 à 10:51
Bonjour,
Tout d'abord une petite présentation : Je suis étudiant en BTS IRIS premiere année et il nous a été demandé d'écrire plusieurs fonctions durant ces vacances. Le projet à réaliser est un programme vous indiquant votre Signe Zodiaqual, votre jour de Naissance, des informations complémentaires aux signes ainsi que l'image de celui en cours, ...
Je m'adresse à vous car je bute sur la syntaxe/l'écriture d'une des dernière avant de relier le projet dans sa totalité.
Il s'agit de la toute dernière partie avant réalisation finale du projet...
Ce même code qui est réalisé dans un Module, elle est appelé par :
Option Explicit
---------------------------------------------------------------------------------------------------------------------------
Private Sub CommandCalculerJourNaissance_Click()
LabelCalculerJourNaissance.Caption = Utilitaires.CalculerJourNaissance(TextJour.Text, TextMois.Text, TextAnnee.Text)
End Sub
Voici maintenant la partie du code concernant mon problème :
' CalculerJourNaissance
' INPUT : Jour, Mois, Annee de naissance.
' OUTPUT : Jour de naissance.
' FONCTION : Retourne le jour de la semaine de naissance a partir d'une date de naissance.
Public Function CalculerJourNaissance(p_strJour As String, p_strMois As String, p_strAnnee As String) As String
Je n'ai pas réussi à décrypter les consignes laissées. Si vous pouviez m'orienter sur les erreurs que j'ai écrites, je vous en serai très reconnaissant.
Je pense que le problème se situe au niveau de la fonction Mid que je n'arrive pas à exploiter, je ne comprend pas sa syntaxe afin de l'utiliser dans ce cas ci.
Voici la forme de cette partie du projet.
Informations complémentaires :
CalculerJourNaissance utilise la fonction FormatDateTime. Il s’agit de lui passer une chaîne de caractères sous la forme Jour/Mois/Année (ex : 1/1/1000), avec en second paramètre le format vbLongDate, et elle retourne la date complète (ex : mercredi 1 janvier 1000). Il suffit ensuite d’utiliser la fonction Mid pour extraire la chaîne « mercredi ». Le troisième paramètre de Mid utilise la fonction InStr pour calculer la longueur de la chaîne en détectant le caractère <espace>.
mid$ sélectionne la partie du texte commençant au 1er caractère, et long de
InStr(....,...) qui te donne la position du premier espace dans ta chaine de départ.
lomatic
Messages postés37Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention 9 octobre 2009 4 nov. 2007 à 11:11
Bonjour jmfmarques et mstarsup5,
Comme indiqué dans le thème, je suis un débutant. Il nous a été conseillé d'utiliser le FormatDateTime mais il est tout à fait possible d'utiliser une autre fonction.
En sachant que la date est défini par l'utilisateur, allant du 1/1/1000 au 1/1/3000, j'ai regardé plusieurs algorithmes mais le codage était au delà de mes connaissances en VB.
Je vais regarder ce que vous m'avez écrit, en vous remerciant.
lomatic
Messages postés37Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention 9 octobre 2009 4 nov. 2007 à 11:22
Merci beaucoup mstarsup5, cela fonctionne très bien. Tu viens de me débloquer ... Cela faisait 5 heures que je planchais sur des algoriythmes et des syntaxtes :D.
mstarsup5
Messages postés527Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention10 octobre 20131 4 nov. 2007 à 11:33
Après, si tu veux extraire les différentes parties, tu peux faire
dim tableau ( ) as string
tableau=split(CalculerJourNaissance," ")
tu auras tableau(0)="Lundi", tableau(1)="1", tableau(2)="novembre",tableau(3)="2007"
mstarsup5
Messages postés527Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention10 octobre 20131 4 nov. 2007 à 12:01
Bah perso, j'ai eu 2 "cours" de 4h :-P
La prof était sympa, mais le contenu était très maigre... on avait un mini poly avec qqs fonctions qu'on a pas lu, et 11 tis exos pour apprendre à se servir un peu des textbox, combobox, picturebox, et timer, et puis c'est tout, finis les cours.
On n'a vraiment rien vu en gros, c'est sympa pour voir un peu ce que tu peux faire, mais c'est quasiment réduit à 0% des possibilités, donc vaut mieux voir ici oui.
C'est pour ça que je squatte depuis 2 semaines :)
mstarsup5
Messages postés527Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention10 octobre 20131 4 nov. 2007 à 17:00
Re salut..
dim JourNaissance as integer
dim JourNaissanceS as string
JourNaissance=weekday(p_strJour & "/" & p_strMois & "/" & p_strAnnee)
select case JourNaissance
case 1
JourNaissanceS="Lundi"
case 2
JourNaissanceS="Mardi"
case3
.............
End Select
msgbox JourNaissanceS
ou alors tu pars du
CalculerJourNaissance = FormatDateTime(p_strJour & "/" & p_strMois & "/" & p_strAnnee, vbLongDate)
que tu as fait, et tu extrais le début de la chaine avant le premier " ".
mstarsup5
Messages postés527Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention10 octobre 20131 5 nov. 2007 à 10:04
Bonjour,
jmfmarques, comment fonctionne la commance format?
Je suis bien d'accord que ça marche, et que c'est mieux que les deux lignes du dessus, vu que la commande à été faite pour ça, je me rappelais que tu avais dit de faire un weekday, mais j'avais oublié le 'format' ci dessus.
Mais comment ça marche?
A quoi correspond le "dddd"?
Y à-t-il d'autres fonctions?
On s'en sert uniquement pour les dates, ou pour d'autres choses?
Merci.