Accueil > > > CALCULER LE NOMBRE D'HEURES DE NUITS D'UN CRÉNEAU HORAIRE
CALCULER LE NOMBRE D'HEURES DE NUITS D'UN CRÉNEAU HORAIRE
Information sur la source
Description
Bonjour à tous Les fonctions temvern et nvertem sont les mêmes que dans l'une des contrib que j'avais postée qui s'appelle dift http://www.atoutfox.org/articles.asp?ACTION=FCON SULTER&ID=0000000066 Ici il s'agit de calculer le nombre d'heures de nuits, en partant d'une heure de début et une heure de fin Heuredeb et heurfin sont en caractère "HH:MM:SS" ex toto=heuresnut("10:00:00","23:00:00","22:00","07:0 0") retournera "01:00:00" A Améliorer : Des tests en entrée de fonction, afin de s'assurer que les paramètres sont bien en texte Bonne journée à tous Eric
Source
- function heuresnuit
- parameters hdeb,hfin,debnuit,finnuit
- **
- ** toto= heuresnuit(heurdeb, heurfin,"22:00","07:00")
- local retour,minuitdeb,minuitfin,hdeb,hfin;debnuit,finhuit,hfin31,retour
- minuitdeb=temvern("00:00")
- minuitfin=temvern("24:00")
- hdeb=temvern(left(hdeb,5))
- hfin=temvern(left(hfin,5))
- debnuit=temvern(debnuit)
- finnuit=temvern(finnuit)
- hfin31= minuitfin+finnuit
- retour=nvertem(0)
- do case
- case between(hdeb,debnuit,minuitfin) .and. between(hfin,debnuit,minuitfin)
- retour=nvertem(hfin-hdeb)
- case between(hdeb,minuitdeb,finnuit) .and. between(hfin,minuitdeb,finnuit)
- retour=nvertem(hfin-hdeb)
- case between(hdeb,debnuit,minuitfin) .and. between(hfin,minuitdeb,finnuit)
- retour=nvertem((minuitfin-hdeb)+hfin-minuitdeb)
- case between(hfin,debnuit,minuitfin) .and. hdeb <debnuit
- retour=nvertem(hfin-debnuit)
- case between(hfin,minuitdeb,finnuit) .and. hdeb <debnuit
- retour=nvertem(hfin-minuitdeb+ (minuitfin-debnuit))
- case hfin > finnuit .and. hfin<debnuit .and. between(hdeb,minuitdeb,finnuit)
- retour=nvertem(finnuit-hdeb)
- case hfin > finnuit .and. hfin<debnuit .and.between(hdeb,debnuit,minuitfin)
- retour=nvertem((finnuit-minuitdeb)+(minuitfin-hdeb))
- case hdeb<debnuit .and. hfin>finnuit .and. hfin<hdeb
- retour=nvertem((finnuit-minuitdeb)+(minuitfin-debnuit))
- case between(hfin,minuitfin,hfin31) .and. between(hdeb,debnuit,minuitfin)
- retour = nvertem(hfin-minuitfin +(minuitfin-hdeb))
- case between(hfin,minuitfin,hfin31).and. hdeb< debnuit .and. hdeb > finnuit
- retour = nvertem(hfin-minuitfin +(minuitfin-debnuit))
- case between(hfin,minuitfin,hfin31).and. hdeb< debnuit .and. hdeb <= finnuit
- retour = nvertem(hfin-minuitfin -(hdeb-minuitdeb))
-
-
- *-
- case hfin > hfin31 .and. between(hdeb,debnuit,minuitfin)
- retour = nvertem(finnuit-minuitfin +(minuitfin-hdeb))
- case hfin > hfin31 .and. hdeb< debnuit
- retour = nvertem(minuitfin-debnuit +(minuitfin-debnuit))
-
-
-
-
- endcase
- return righ(retour,5)+":00"
-
-
-
-
- function temvern
- parameters temp1
- temp1=alltrim(temp1)
- local s,m,h
- s=substr(temp1,len(temp1)-1,2)
- s=val(s)
- m=substr(temp1,len(temp1)-4,2)
- m=val(m)*60
- h=substr(temp1,1,len(temp1)-6)
- h=val(h)*3600
- retour=h+m+s
- return retour
-
-
- function nvertem
- parameters temp1
- local s,m,h
- h=int(temp1/3600)
- resth=mod(temp1,3600)
-
- m=int((resth)/60)
- restm=mod(m,60)
-
- s=int(mod(resth,60))
-
-
- return padl(h,5,"0")+":"+padl(m,2,"0")+":"+padl(s,2,"0")
-
function heuresnuit
parameters hdeb,hfin,debnuit,finnuit
**
** toto= heuresnuit(heurdeb, heurfin,"22:00","07:00")
local retour,minuitdeb,minuitfin,hdeb,hfin;debnuit,finhuit,hfin31,retour
minuitdeb=temvern("00:00")
minuitfin=temvern("24:00")
hdeb=temvern(left(hdeb,5))
hfin=temvern(left(hfin,5))
debnuit=temvern(debnuit)
finnuit=temvern(finnuit)
hfin31= minuitfin+finnuit
retour=nvertem(0)
do case
case between(hdeb,debnuit,minuitfin) .and. between(hfin,debnuit,minuitfin)
retour=nvertem(hfin-hdeb)
case between(hdeb,minuitdeb,finnuit) .and. between(hfin,minuitdeb,finnuit)
retour=nvertem(hfin-hdeb)
case between(hdeb,debnuit,minuitfin) .and. between(hfin,minuitdeb,finnuit)
retour=nvertem((minuitfin-hdeb)+hfin-minuitdeb)
case between(hfin,debnuit,minuitfin) .and. hdeb <debnuit
retour=nvertem(hfin-debnuit)
case between(hfin,minuitdeb,finnuit) .and. hdeb <debnuit
retour=nvertem(hfin-minuitdeb+ (minuitfin-debnuit))
case hfin > finnuit .and. hfin<debnuit .and. between(hdeb,minuitdeb,finnuit)
retour=nvertem(finnuit-hdeb)
case hfin > finnuit .and. hfin<debnuit .and.between(hdeb,debnuit,minuitfin)
retour=nvertem((finnuit-minuitdeb)+(minuitfin-hdeb))
case hdeb<debnuit .and. hfin>finnuit .and. hfin<hdeb
retour=nvertem((finnuit-minuitdeb)+(minuitfin-debnuit))
case between(hfin,minuitfin,hfin31) .and. between(hdeb,debnuit,minuitfin)
retour = nvertem(hfin-minuitfin +(minuitfin-hdeb))
case between(hfin,minuitfin,hfin31).and. hdeb< debnuit .and. hdeb > finnuit
retour = nvertem(hfin-minuitfin +(minuitfin-debnuit))
case between(hfin,minuitfin,hfin31).and. hdeb< debnuit .and. hdeb <= finnuit
retour = nvertem(hfin-minuitfin -(hdeb-minuitdeb))
*-
case hfin > hfin31 .and. between(hdeb,debnuit,minuitfin)
retour = nvertem(finnuit-minuitfin +(minuitfin-hdeb))
case hfin > hfin31 .and. hdeb< debnuit
retour = nvertem(minuitfin-debnuit +(minuitfin-debnuit))
endcase
return righ(retour,5)+":00"
function temvern
parameters temp1
temp1=alltrim(temp1)
local s,m,h
s=substr(temp1,len(temp1)-1,2)
s=val(s)
m=substr(temp1,len(temp1)-4,2)
m=val(m)*60
h=substr(temp1,1,len(temp1)-6)
h=val(h)*3600
retour=h+m+s
return retour
function nvertem
parameters temp1
local s,m,h
h=int(temp1/3600)
resth=mod(temp1,3600)
m=int((resth)/60)
restm=mod(m,60)
s=int(mod(resth,60))
return padl(h,5,"0")+":"+padl(m,2,"0")+":"+padl(s,2,"0")
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
horloge en foxpro [ par engelina33 ]
Bonsoir,y'a t'il quelqu'un qui peut m'indiquer un moyen pour afficher une horloge et donnez la main à l'utilisateur de sélectionné une heure et me ret
|
Derniers Blogs
ENUMERABLECOLLECTIONENUMERABLECOLLECTION par Matthieu MEZIL
Prenons le scénario suivant. On utilise MVVM. On a les deux classes suivantes dans le model : public class Child { } public class Parent { private ObservableCollection < Child > _children; public ObservableCollection < Child > Children { get {...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [HS] CHROME 6 + MOI = COUP DE GUEULE ![HS] CHROME 6 + MOI = COUP DE GUEULE ! par JeremyJeanson
Attention, le poste qui suit n'est pas la complainte d'une personne : Qui n'aime pas Chrome. D'un anti Google. D'un développeur qui a un poil énorme dans la main. Ceux qui me fréquentent savent que je change de navigateur favori tous les 2 ou 3 mois afin ...
Cliquez pour lire la suite de l'article par JeremyJeanson [WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7[WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7 par Audrey
Lors de la réalisation de ma 2ème application Windows Phone 7, j'ai souhaité utiliser un WrapPanel pour afficher plusieurs photos. Mais le contrôle WrapPanel ne fait pas parti de la liste des contrôles inclus dans le SDK de la version Beta des outils pour...
Cliquez pour lire la suite de l'article par Audrey [WP7] BESOIN D'AVOIR DES DONNéES EN CACHE[WP7] BESOIN D'AVOIR DES DONNéES EN CACHE par Nicolas
Les développeurs ASP.NET ont l'habitude de mettre des données en cache pour éviter de requêter a chaque fois la base de données. Et il est toujours utilie de penser que vos utilisateurs mobiles n'ont pas troujours une super connexion 3G/WIFI et un for...
Cliquez pour lire la suite de l'article par Nicolas [TFS] COMMENT FORCER LA SAISIE D'UN AREA OU ITERATION[TFS] COMMENT FORCER LA SAISIE D'UN AREA OU ITERATION par cyril
Lorsque l'on créé un Work Item dans TFS, il est possible de le classer dans un "area" et dans une "iteration". Dans la plupart des types de projet, un "area" correspond à une catégorie, une "iteration" à un numéro de version. Il est possible de cré...
Cliquez pour lire la suite de l'article par cyril
Logiciels
uTorrent (2.0.4)UTORRENT (2.0.4)C'est un client BitTorrent très puissant et très performant. Comme son nom l'indique, uTorrent (m... Cliquez pour télécharger uTorrent Bureau de Gestion - ERP Devis Facturation (2.02)BUREAU DE GESTION - ERP DEVIS FACTURATION (2.02)- Version gratuite du 10/06/2010
Le Bureau de Gestion est un logiciel dédié à la gestion de l'en... Cliquez pour télécharger Bureau de Gestion - ERP Devis Facturation 4Videosoft Transfert iPod Mac (3.2.08)4VIDEOSOFT TRANSFERT IPOD MAC (3.2.08)4Videosoft Transfert iPod-Mac caractérise principalement à transférer les fichiers iPod vers Mac.... Cliquez pour télécharger 4Videosoft Transfert iPod Mac 4Videosoft HD Convertisseur (3.3.08)4VIDEOSOFT HD CONVERTISSEUR (3.3.08)Etant le meilleur HD Vidéo Convertisseur, 4Videosoft HD Convertisseur, vous pouvez regarder la vi... Cliquez pour télécharger 4Videosoft HD Convertisseur 4Videosoft Transfert iPad Mac (3.2.08)4VIDEOSOFT TRANSFERT IPAD MAC (3.2.08)4Videosoft Transfert iPad-Mac est un logiciel managérial iPad professionnel qui a des fonctions i... Cliquez pour télécharger 4Videosoft Transfert iPad Mac
|