Forums Développement Multimédia

Aller au contenu

[Résolu] - Gestion dates et horaires

horaires dates android application

11 réponses à ce sujet

#1 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 405 messages

Posté 18 June 2017 - 08:24 AM

Bonjour,
Je souhaiterais ajouter dans mon application Air pour Android un texte
indiquant si un dépôt est ouvert ou fermé suivant les horaires et les jours de la semaines du genre:
Dépôt Ouvert - ferme dans 1h30mn et inversement Depôt Fermé - ouvre dans 10 mn ou (2 jours et 6h15).
Merci d'avance pour votre aide sachant que je me document toutefois ici.

#2 archiroc

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 18 June 2017 - 10:22 AM

Salut.
Bah du coup...
Avec Date...
Il est où le problème ???

#3 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 405 messages

Posté 18 June 2017 - 11:15 AM

Aucun problème, juste besoin d'êtres orienté car jamais utilisé encore, voir un code source ou tuto en exemple pourait m'être utile.
Pour la date et heur pas de problème mais pour les décompte du temps avant ouverture ou avant fermeture c'est déjà plus complexe.

#4 archiroc

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 18 June 2017 - 13:01 PM

Bah si tu peux préciser une fonction type recherchée je pourrais te proposer une mauvaise solution.
Pour ma part je mets tout en milliseconde puis je calcule.
Des lors qu'une journée standard fait 24h00 et qu'une heure fait environ ( pour ce que j'en sais ) 60 minutes. Et caetera...
Bah tu calcules, tu compares et sincèrement, c'est pas bien compliqué !
Parole d'un néophyte...

Édit : je suis un peu présomptueux. Je verrait ce soir si je sais faire... gloups !

#5 archiroc

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 18 June 2017 - 21:28 PM

Bon bah c'est pas difficile....
ouf...
Exemple :


// Heure d'ouverture et fermeture du magasin par jour
var HeuredouvertureDuMagasin: Array = [0, 9, 18, 8, 24, 9, 18, 9, 18, 10, 17, 9, 17, 9, 18];
// De suite maintenant
var aujourdhui: Date = new Date();

var heureMaitenantToutDeSuiteMaisPasALaMinutePres: Number = aujourdhui.getHours();
var JourMaitenantToutDeSuitePasHierNiAvantHier: Number = aujourdhui.getDay();

// Puis des tests
if (heureMaitenantToutDeSuiteMaisPasALaMinutePres < HeuredouvertureDuMagasin[JourMaitenantToutDeSuitePasHierNiAvantHier * 2 + 1]) {
trace("Pas encore ouvert");
} else if (heureMaitenantToutDeSuiteMaisPasALaMinutePres > HeuredouvertureDuMagasin[JourMaitenantToutDeSuitePasHierNiAvantHier * 2 + 2]) {
trace("C'est fermé trop tard ");
} else {
trace ("C'est Ouvert ! ")
}
 

Donc normalement si tout va bien tu t'en sors vite...

#6 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 405 messages

Posté 19 June 2017 - 05:01 AM

Voir le messagearchiroc, le 18 June 2017 - 21:28 PM, dit :

Bon bah c'est pas difficile....
Et bien disons que pour moi qui écrit deux ou trois ligne de code dans l'année ça reste dans le domaine de la découverte et de l'apprentissage en permanence, mais ça reste plaisant.
Il est à peine 6h du matin j'ai pas le temps d'assimiler ton exemple, je me penche dessus ce soir, merci pour ton aide Archiroc ;-)

#7 archiroc

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 19 June 2017 - 10:26 AM

Coucou,
Désolé : C'est moi qui orgueilleux et fier ( à tort ) ne suis pas très sympathique... :oops:

Donc tu testera avec le code ci-dessous, version un peu moins foutage de gueule....


// Heure d'ouverture et fermeture du magasin par jour

var ouverture_Magasin: Array = [9, 8, 9, 9, 10, 9, 9];
var fermeture_Magasin: Array = [18, 24, 18, 18, 17, 17, 18];

// De suite maintenant
var aujourdhui: Date = new Date();

// L'heure qu'il est Maintenant
var H: int = aujourdhui.getHours();
var J: int = aujourdhui.getDay();

// Puis des tests

if (H < ouverture_Magasin[J * 2 + 1]) {

        trace("ouverture dans " + (ouverture_Magasin[J] - H + " H"));

} else if (H > fermeture_Magasin[J]) {
 
        trace("C'est fermé depuis " (fermeture_Magasin[J] - H) + " H");

} else {
 
        trace("C'est Ouvert depuis " + ouverture_Magasin[J] + " H. Mais ça ferme à " + (fermeture_Magasin[J] + " H"))
}
 

Puis tu reviens vers moi si Pb.
Sachant que je suis plutôt un scribouillard qu'un pro.

Bon courage !

#8 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7001 messages

Posté 19 June 2017 - 12:51 PM

J'ai failli hurler quand j'ai vu le nom de tes variables ;)

Pour aider et faire simple, la date actuelle se récupère via l'objet Date.
Tu peux aussi utiliser un Timestamp qui te donne un point de référence en millisecondes.
Ensuite c'est à toi de faire les calculs selon ce que tu veux obtenir sachant que :
1 = 1ms
1000 = 1s (1*1000)
60 000 = 1m (60*1000)
360 000 = 1h (60*60 000)
8 640 000 = 1j (24*360 000)

C'est un peu plus compliqué pour les mois car ils ne font pas tous le même nombre de jours, surtout avec les années bissextiles.

#9 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 405 messages

Posté 19 June 2017 - 18:13 PM

Ok, je pense y arriver, c'est un bon départ, merci beaucoup pour votre aide,

#10 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 405 messages

Posté 09 July 2017 - 08:58 AM

Bonjour,
J'ai réalisé une condition pour les horaires d'ouverture de façon assez simple "plage horaire + Jours d'ouvertue" ça fonctionne nickel, cela dit je souhaiterais un "else if" pour les jours férié comme dans mon exemple mais évidement j'ai compris que si la première condition étant vrai la seconde est ignorée.
Pouvez vous m'aider à solutionner ce problème ?


if    (zone_heure.text >= "07:30:00" &&  zone_heure.text <= "12:00:00" && etat_jour.text == "Lundi"
          || zone_heure.text >= "07:30:00" &&  zone_heure.text <= "12:00:00" && etat_jour.text == "Mardi"
          || zone_heure.text >= "07:30:00" &&  zone_heure.text <= "12:00:00" && etat_jour.text == "Mercredi"
          || zone_heure.text >= "07:30:00" &&  zone_heure.text <= "12:00:00" && etat_jour.text == "Jeudi"
          || zone_heure.text >= "07:30:00" &&  zone_heure.text <= "12:00:00" && etat_jour.text == "Vendredi"
         
          || zone_heure.text >= "13:30:00" &&  zone_heure.text <= "17:30:00" && etat_jour.text == "Lundi"
           || zone_heure.text >= "13:30:00" &&  zone_heure.text <= "17:30:00" && etat_jour.text == "Mardi"
           || zone_heure.text >= "13:30:00" &&  zone_heure.text <= "17:30:00" && etat_jour.text == "Mercredi"
           || zone_heure.text >= "13:30:00" &&  zone_heure.text <= "17:30:00" && etat_jour.text == "Jeudi"
           || zone_heure.text >= "13:30:00" &&  zone_heure.text <= "17:00:00" && etat_jour.text == "Vendredi") {
         
          etat_depot.text = "Ouvert";  
   }
 
   else if (zone_date.text == "Vendredi 14 Juillet 2017"
          || zone_date.text == "Mardi 15 Août 2017"
          || zone_date.text == "Mercredi 01 Novembre 2017"
          || zone_date.text == "Mardi 15 Août 2017"
          || zone_date.text == "Lundi 25 Décembre 2017") {
   
          etat_depot.text = "Fermé";
   
   }
         
   else { (etat_depot.text = "Fermé")}
   }
 


#11 archiroc

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 09 July 2017 - 09:59 AM

Salut !

C'est rigolo : on dirait du code à moi en presque pire :eusa_doh: !
Si tu simplifie pas ta méthodologie tu vas galérer comme c'est pas permis si les horaires sont modifiés.
Utilise des tableaux, des routines, je ne sais quoi mais simplifie la chose.
( enfin... Ce que j'en pense...)

Si tu veux garder ta méthodologie :
1. Etat_depot = fermé.
2. Trés TrésTrés longue serie de if auquel cas Etat_depot = ouvert.
3. Nouvelle longue série de if pour les jours fériés : Etat_depot = fermé.

Le else if n'est pas approprié : tu ne compares pas de mêmes valeurs ( Heure d'ouverture / Jours de fermeture ).
Donc possible en se contorsionnant mais vraiment pas logique.

Bonne chance & Bon dimanche.

#12 cortoh

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 405 messages

Posté 09 July 2017 - 12:15 PM

Bon et bien en fait j'ai inversé les conditions j'ai privilégié les horaires fermées en incluant le samedi, dimanche et les jours férié, le reste du temps c'est "Ouvert" ;-)



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP