FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» bouton dans autre form que 0
Calendrier Emptypar leclode Aujourd'hui à 13:59

» KGF_dll - nouvelles versions
Calendrier Emptypar Klaus Aujourd'hui à 11:41

» Gestion d'un système client-serveur.
Calendrier Emptypar Klaus Aujourd'hui à 10:23

» PANORAMIC V 1
Calendrier Emptypar papydall Sam 4 Mai 2024 - 3:43

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Calendrier Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Calendrier Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Calendrier Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Calendrier Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Calendrier Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Calendrier Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Calendrier Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Calendrier Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Calendrier Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Calendrier Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Calendrier Emptypar papydall Dim 21 Avr 2024 - 23:30

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-28%
Le deal à ne pas rater :
Brandt LVE127J – Lave-vaisselle encastrable 12 couverts – L60cm
279.99 € 390.99 €
Voir le deal

 

 Calendrier

Aller en bas 
4 participants
AuteurMessage
jean_debord

jean_debord


Nombre de messages : 1250
Age : 69
Localisation : Limoges
Date d'inscription : 21/09/2008

Calendrier Empty
MessageSujet: Calendrier   Calendrier EmptyVen 2 Oct 2020 - 12:13

Voici l'adaptation pour FBCroco du programme de calendrier qui figurait déjà dans FBPano.

Un clic sur le bouton d'un jour donné affiche la date dans la fenêtre de commandes.

Code:

' *******************************************************************
' Calendrier - D'apres un programme PANORAMIC de Jean-Claude
' *******************************************************************

' -------------------------------------------------------------------
' Constantes et variables globales
' -------------------------------------------------------------------

dim_widget fmMain
dim_widget alDate, btAnPrec, btMoisPrec, btMoisSuiv, btAnSuiv
dim_widget btJour(5,6), alJour(6)

dim jour$(7)     ' Noms des jours
dim mois$(12)    ' Noms des mois
dim njours%(12)  ' Nb de jours de chaque mois
dim feries$      ' Liste des jours feries
dim m%, a%       ' Mois, annee

' -------------------------------------------------------------------
' Donnees du programme
' -------------------------------------------------------------------

data "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"

data "Janvier", 31, "Février", 28, "Mars", 31
data "Avril", 30, "Mai", 31, "Juin", 30, "Juillet", 31, "Août", 31
data "Septembre", 30, "Octobre", 31, "Novembre", 30, "Décembre", 31

' -------------------------------------------------------------------
' Creation de l'interface et lancement de l'application
' -------------------------------------------------------------------

Read_Data()
Create_GUI()

m = val(mid(fdate(), 4, 2))  ' Mois en cours
a = val(mid(fdate(), 7))     ' Annee en cours
feries = Jours_Feries(a)     ' Jours feries pour l'annee en cours

Display()                    ' Afficher le calendrier

start fmMain

' -------------------------------------------------------------------
' Sous-programme de lecture des donnees et creation de l'interface
' -------------------------------------------------------------------

sub Read_Data()

  dim i%

  for i = 1 to 7
    read jour(i)
  next i

  for i = 1 to 12
    read mois(i), njours(i)
  next i
end_sub

sub Create_GUI()

  dim i%

  widget fmMain, T_Form, 100, 100, 260, 285, "Calendrier"

  matwidget btJour(), T_Button, 12, 75, 25, 25, 10, 10, CLICK_Jour

  widget btAnPrec,   T_Button,   7, 10, 28, 25, "@<<", CLICK_Mois_Annee
  widget btMoisPrec, T_Button,  40, 10, 25, 25, "@<" , CLICK_Mois_Annee
  widget btMoisSuiv, T_Button, 195, 10, 25, 25, "@>" , CLICK_Mois_Annee
  widget btAnSuiv,   T_Button, 225, 10, 28, 25, "@>>", CLICK_Mois_Annee
  
  color_caption_fl btAnPrec,   FL_GREEN
  color_caption_fl btMoisPrec, FL_GREEN
  color_caption_fl btMoisSuiv, FL_GREEN
  color_caption_fl btAnSuiv,   FL_GREEN

  hint btAnPrec,   "Annee precedente"
  hint btMoisPrec, "Mois precedent"
  hint btMoisSuiv, "Mois suivant"
  hint btAnSuiv,   "Annee suivante"

  widget alDate, T_Alpha, 70, 10, 120, 25
  set_box_type alDate, FL_BORDER_BOX
  font_caption alDate, FL_TIMES_BOLD, 16
  color_caption_fl alDate, FL_DARK_GREEN

  rowwidget alJour(), T_Alpha, 12, 45, 25, 25

  for i = 0 to 6
    caption alJour(i), left(jour(i + 1), 2)
  next i
end_sub

' -------------------------------------------------------------------
' Sous-programmes utilitaires
' -------------------------------------------------------------------

function Paques$ (an%)
' Retourne la date de Paques d'une annee donnee (an)
' Exemple : Paques(2020) = "12/04"
' D'apres un programme en Python :
' http://python.jpvweb.com/python/mesrecettespython/doku.php?id=date_de_paques

  dim a%, b%, c%, d%, e%, f%, g%, h%, j%, k%, m%, t%

  a = an \ 100
  b = an mod 100
  t = 3 * (a + 25)
  c = t \ 4
  d = t mod 4
  e = (8 * (a + 11)) \ 25
  f = (5 * a + b) mod 19
  g = (19 * f + c - e) mod 30
  h = (f + 11 * g) \ 319
  t = 60 * (5 - d) + b
  j = t \ 4
  k = t mod 4
  m = (2 * j - k - g + h) mod 7
  t = g - h + m + 114
  m = t \ 31
  j = t mod 31 + 1

  return dec(j, "00") + "/" + dec(m, "00")
end_function

function JF3$ (an%)
' Calcule les dates des 3 jours feries : Lundi de Paques,
' Jeudi de l'Ascension et Lundi de Pentecote pour l'annee an
' Exemple : JF3(2020) = "13/04 21/05 01/06"

  dim n%, d$(3)

  d(0) = Paques(an) & "/" & an  ' Paques

  n = str_to_date(d(0))

  d(1) = fdate(n + 1)   ' Lundi de Paques
  d(2) = fdate(n + 39)  ' Jeudi de l'Ascension
  d(3) = fdate(n + 50)  ' Lundi de Pentecote

  return left(d(1), 5) + " " + left(d(2), 5) + " " + left(d(3), 5)
end_function

function Jours_Feries$ (an%)
' Retourne la liste des jours feries pour l'annee an

  return JF3(an) + " 01/01 01/05 08/05 14/07 15/08 01/11 11/11 25/12"
end_function

sub Calendrier (mois%, an%, jour1%, jour2%)
' Calcule le calendrier pour le mois et l'annee
' Les jours sont numerotes a partir du jour de la semaine
' correspondant au 1er du mois (1 = Lundi etc.)
' Exemple : Octobre 2020 ==> jour1 = 4 (Jeudi), jour2 = 4 + 31 - 1 = 34

  dim date1$, date2$

  date1 = "1/" & mois & "/" & an  ' 1er du mois
  jour1 = day_of_week(date1)      ' Jour du 1er du mois

  jour2 = jour1 + njours(mois) - 1

  if mois = 2 then
    date2 = "29/2/" & an                                ' 29 fevrier ?
    if str_to_date(date2) > 0 then jour2 = jour2 + 1  ' ==> Annee bissextile
  end_if
end_sub

sub Display()
' Affiche le calendrier pour le mois m et l'annee a

  dim i%, j%, k%, j1%, j2%, n%, date1$, col%

  Calendrier m, a, j1, j2

  k = 1
  for i = 0 to 5
    for j = 0 to 6
      if k < j1 or k > j2 then
        hide btJour(i,j)
      else
        n = k - j1 + 1
        caption btJour(i,j), str(n)
        date1 = dec(n, "00") + "/" + dec(m, "00")
        if instr(feries, date1) > 0 then col = FL_BLUE else col = FL_BLACK
        color_caption_fl btJour(i,j), col
        show btJour(i,j)
      end_if
      k = k + 1
    next j
  next i

  caption alDate, mois(m) & " " & a
end_sub

' -------------------------------------------------------------------
' Sous-programmes associes aux evenements
' -------------------------------------------------------------------

sub CLICK_Mois_Annee ()

  dim n%, a1%

  if widget_self(btAnPrec) then
    n = 1
  elseif widget_self(btMoisPrec) then
    n = 2
  elseif widget_self(btMoisSuiv) then
    n = 3
  else
    n = 4
  end_if

  select n
    case 1
      if a > 1583 then a1 = a - 1
    case 2
      if m = 1 then m = 12 : a1 = a - 1 else m = m - 1 : a1 = a
    case 3
      if m = 12 then m = 1 : a1 = a + 1 else m = m + 1 : a1 = a
    case 4
      if a < 4099 then a1 = a + 1
  end_select

  if a1 <> a then feries = Jours_Feries(a1) : a = a1

  Display()
end_sub

sub CLICK_Jour ()
' Choisit une date et ecrit le resultat sous la forme : Jeudi 01/10/2020

  dim i%, j%, jour1$, date1$

  for i = 0 to 5
    for j = 0 to 6
      if widget_self(btJour(i,j)) then
        get_caption btJour(i,j), jour1
        date1 = jour1 & "/" & m & "/" & a
      end if
    next j
  next i
  
  print jour(day_of_week(date1)) + " " + date1
end_sub
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Marc

Marc


Nombre de messages : 2389
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Calendrier Empty
MessageSujet: Re: Calendrier   Calendrier EmptyVen 2 Oct 2020 - 14:02

Merci Jean !

C’est un calendrier très pro ! Admirablement efficace !

Spoiler:

J’en profite pour te remercier pour tous tes nombreux partages, tous de qualité exemplaire.

Bonne continuation !
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7002
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Calendrier Empty
MessageSujet: Re: Calendrier   Calendrier EmptyVen 2 Oct 2020 - 19:03

Merci Jean_debord pour le travail que tu fais.
Espérons que notre ami Jean Claude se rétablira très bientôt.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Calendrier Empty
MessageSujet: Re: Calendrier   Calendrier EmptyVen 2 Oct 2020 - 23:06

Petit calendrier qui montre les capacités de ton nouveau langage FBCroco...

Bravo Jean ! Comme d'habitude c'est parfait ! Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
jean_debord

jean_debord


Nombre de messages : 1250
Age : 69
Localisation : Limoges
Date d'inscription : 21/09/2008

Calendrier Empty
MessageSujet: Re: Calendrier   Calendrier EmptySam 3 Oct 2020 - 8:00

Merci pour vos appréciations Smile

Les programmes de Jean Claude ont été pour moi une grande source d'inspiration. J'espère de tout coeur qu'il se rétablira.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Contenu sponsorisé





Calendrier Empty
MessageSujet: Re: Calendrier   Calendrier Empty

Revenir en haut Aller en bas
 
Calendrier
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un Calendrier de plus
» Calendrier
» Calendrier
» Un petit calendrier
» calendrier clicable

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Expériences autour de PANORAMIC :: Crocodile Basic-
Sauter vers: