cette petite alias agis comme $duration , c'est a dire qu'elle convertis une duré a la base en seconde: en années, semaines, jours, heures, minutes et secondes
example:
//echo -a $wduration(6001000000)
donera:
190 Ans 15 Semaines 1 Jour 26Min 40Secs
il n'y a rien de bien compliqué dans ce code, mais je le poste comme example pour ceux ki voudrais s'en inspirer pour faire d'autres alias dans le meme genre mais plus pousées
pour la seconde source: utilisez $wdur(xxxx)
ou x est bien évidement un nombre
le resultat est le meme qu"avec $wduration mais il est plus rapide du fait qu"il n'y a plus de boucles :) c'est plus direct
merci a pada pour ses conseils
Source / Exemple :
wduration {
if ($isid) {
if ($1 isnum) {
var %n = $1 , %heures 0 , %min 0 , %days 0 , %year , %week 0
while (%n >= 31536000) {
inc %year
dec %n 31536000
}
while (%n >= 604800) {
inc %week
dec %n 604800
}
while (%n >= 86400) {
inc %days
dec %n 86400
}
while (%n >= 3600) {
inc %heures
dec %n 3600
}
while (%n >= 60) {
inc %min
dec %n 60
}
return $iif(%year > 0,$ifmatch Ans) $iif(%week > 0 ,$ifmatch Semaines) $iif(%days > 0,$ifmatch Jour $+ $iif(%days > 1,s)) $iif(%heures > 0,$ifmatch $+ Heure $iif(%heures > 1,s)) $iif(%min > 0,$ifmatch $+ Min) $iif(%n > 0,$ifmatch $+ Secs)
}
else { return N/a }
}
}
;------------------------------------------
;la je met la nouvelle source (j'ai laissé l'anciene pour que vous ayez de quoi comparer sur l'anciene)
;------------------------------------------
wdur {
if ($isid) {
if ($1 isnum) {
var %n = $1 , %heures 0 , %min 0 , %days 0 , %year , %week 0 , %millen 0 , %siecl 0
var %millen = $int($calc(%n /31556952000))
dec %n $calc(%millen *31556952000)
var %siecl = $int($calc(%n /3155695200))
dec %n $calc(%siecl *3155695200)
var %year = $int($calc(%n /31556952))
dec %n $calc(%year *31556952)
var %week = $int($calc(%n / 604800))
dec %n $calc(%week *604800)
var %day = $int($calc(%n / 86400))
dec %n $calc(%day * 86400)
var %heures = $int($calc(%n /3600))
dec %n $calc(%heures *3600)
var %min = $int($calc(%n / 60))
dec %n $calc(%min * 60)
if ($2) {
if ($2 == 1) { return %millen %siecl %year %week %days %heures %min %n }
elseif ($2 == 2) { return %millen millénaire %siecl siecles %year anées %week semaines %days jours %heures heures %min minutes %n secondes }
}
return $iif(%millen > 0,$ifmatch Millenaire $+ $iif(%millen > 1,s)) $iif(%siecl > 0,$ifmatch Siecle $+ $iif(%siecl > 1,s)) $iif(%year > 0,$ifmatch Ans) $iif(%week > 0 ,$ifmatch Semaines) $iif(%days > 0,$ifmatch Jour $+ $iif(%days > 1,s)) $iif(%heures > 0,$ifmatch $+ Heure $+ $iif(%heures > 1,s)) $iif(%min > 0,$ifmatch $+ Min) $iif(%n > 0,$ifmatch $+ Sec $+ $iif(%n > 1,s))
else { return N/a }
}
}
}
Conclusion :
et ouis je sait que cette alias n'est pas aussis rapide qu"un vrais $duration
mais je l'ai juste faite pour relever le defis (je vais tenter de refaire une bonne partie des identifieurs mirc pour m'amuser un peu)
voila voila au plésir :)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.