IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Simuler fonction Format en ASP/VBScript


Sujet :

ASP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 65
    Par défaut Simuler fonction Format en ASP/VBScript
    Bonjour,

    je voudrais savoir si quelqu'un connais un endroit où je pourrais trouver une fonction toute faite (basée sur la propriété LCID d'asp) permettant de reproduire le fonctionnement de la fonction "Format" de VB qui n'est pas disponible en vbscript.

    Merci !

  2. #2
    J1
    J1 est déconnecté
    Membre expérimenté Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Par défaut
    Bonjour,

    pourquoi ne pas utiliser FormatCurrency, FormatDateTime, FormatNumber ou FormatPercent en fonction de ce que tu veux faire ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 65
    Par défaut
    Parce que ces fonctions sont trop dépendantes de ce que l'usager va entrer comme formats dans ses paramètres régionaux.

    Par exemple pour les dates, si je veux afficher une date au format "Mardi, le 8 mai 2007" et que j'utilise FormatDateTime(Now, vbLongDate), le jour de la semaine peut ne pas apparaître (c'est même le cas par défaut je crois) si l'usager n'a pas configuré sa date longue comme suit: "dddd d mmmm yyyy"

    En utilisant la fonction Format je n'ai pas ce problème puisque je force le format de la date, le LCID me permet toutefois de récupérer le bon nom de jour de la semaine et le nom du mois en la langue des paramètres régionaux.

  4. #4
    J1
    J1 est déconnecté
    Membre expérimenté Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Par défaut
    Je sais que ce n'est pas exactement ce que tu demandais, mais que dirais-tu d'une solution de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim dteDate
    dteDate = Date
    Response.Write WeekdayName(Weekday(dteDate), , vbSunday) & " " & Day(dteDate) & " " & MonthName(Month(dteDate)) & " " & Year(dteDate)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 65
    Par défaut
    En y repensant, vu que j'avais besoin de ça surtout pour la date, j'ai pu faire la fonction moi-même relativement facilement.

    J'aimerais, si vous dit, que vous y jetiez un oeil et me dire s'il y a quelquechose qui cloche ou si ça vous semble correct. Les tests que j'ai fait jusqu'à maintenant sont concluants.

    Merci !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    Public Function Format(ByVal datFormat, ByVal strFormat)
    	'Fonction simulant le Format de VB pour les dates
     
    	Dim intAnnee
    	Dim intMois
    	Dim intJour
    	Dim intHeure
    	Dim intMinute
    	Dim intSeconde
    	Dim strFormatTemp
     
    	'YYYY Années
    	'MM Mois
    	'DD Jours
    	'HH Heures (format 24h)
    	'hh Heures (format 12h)
    	'NN Minutes
    	'SS Secondes
     
    	intAnnee = Year(datFormat)
    	intMois = Month(datFormat)
    	intJour = Day(datFormat)
    	intHeure = Hour(datFormat)
    	intMinute = Minute(datFormat)
    	intSeconde = Second(datFormat)
     
    	Format = vbNullString
    	intI = 1
    	Do While intI <= Len(strFormat)
    		strFormatTemp = vbNullString
    		Do
    			strFormatTemp = strFormatTemp & Mid(strFormat, intI, 1)
    			intI = intI + 1
    		Loop Until Mid(strFormat, intI, 1) <> Mid(strFormat, intI - 1, 1)
     
    		Select Case strFormatTemp
    			Case "YYYY", "yyyy"
    				Format = Format & intAnnee
    			Case "YY", "yy"
    				Format = Format & Right("00" & intAnnee, 2)
    			Case "MMMM", "mmmm"
    				Format = Format & MonthName(intMois, False)
    			Case "MMM", "mmm"
    				Format = Format & MonthName(intMois, True)
    			Case "MM", "mm"
    				Format = Format & Right("00" & intMois, 2)
    			Case "M", "m"			
    				Format = Format & intMois
    			Case "DDDD", "dddd"
    				Format = Format & WeekDayName(WeekDay(datFormat), False)
    			Case "DDD", "ddd"
    				Format = Format & WeekDayName(WeekDay(datFormat), True)
    			Case "DD", "dd"
    				Format = Format & Right("00" & intJour, 2)
    			Case "D", "d"			
    				Format = Format & intJour
    			Case "HH"
    				Format = Format & Right("00" & intHeure, 2)
    			Case "H"
    				Format = Format & intHeure
    			Case "hh"
    				If intHeure > 12 Then
    					Format = Format & Right("00" & (intHeure - 12), 2)
    				Else
    					Format = Format & Right("00" & (intHeure), 2)
    				End If
    			Case "h"	
    				If intHeure > 12 Then
    					Format = Format & (intHeure - 12)
    				Else
    					Format = Format & intHeure
    				End If
    			Case "NN", "nn"
    				Format = Format & Right("00" & intMinute, 2)
    			Case "N", "n"
    				Format = Format & intMinute
    			Case "SS", "ss"
    				Format = Format & Right("00" & intSeconde, 2)
    			Case "S", "s"
    				Format = Format & intSeconde
    			Case Else
    				Format = Format & strFormatTemp
    		End Select
    	Loop
    End Function

  6. #6
    J1
    J1 est déconnecté
    Membre expérimenté Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Par défaut
    Personnellement, je ne vais pas avoir le temps de relire tout ton code en détails. Difficile donc de te donner un avis constructif.
    Une toute petite chose néanmoins que j'ai remarquée en testant rapidement : intI ne semble pas être déclarée. Tu peux utiliser Option Explicit pour éviter ce genre d'oubli.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/03/2007, 15h35
  2. Fonction "Format" sous SQL
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 08/10/2004, 09h07
  3. [ASP][VBscript]Bouton et procédure
    Par Petitjean_85 dans le forum ASP
    Réponses: 2
    Dernier message: 09/06/2004, 14h57
  4. fonction format
    Par billoum dans le forum ASP
    Réponses: 9
    Dernier message: 16/04/2004, 15h43
  5. liste déroulante en ASP vbscript
    Par leeloo076 dans le forum ASP
    Réponses: 9
    Dernier message: 17/03/2004, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo