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
» Gestion d'un système client-serveur.
Lever/coucher du soleil Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Lever/coucher du soleil Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Lever/coucher du soleil Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Lever/coucher du soleil Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Lever/coucher du soleil Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Lever/coucher du soleil Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Lever/coucher du soleil Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Lever/coucher du soleil Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Lever/coucher du soleil Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Lever/coucher du soleil Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Lever/coucher du soleil Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Lever/coucher du soleil Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Lever/coucher du soleil Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Lever/coucher du soleil Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Lever/coucher du soleil Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le deal à ne pas rater :
Cartes Pokémon : la prochaine extension Pokémon sera EV6.5 Fable ...
Voir le deal

 

 Lever/coucher du soleil

Aller en bas 
+2
Marc
JL35
6 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Lever/coucher du soleil Empty
MessageSujet: Lever/coucher du soleil   Lever/coucher du soleil EmptyVen 16 Avr 2021 - 15:39

Les données sont extraites d'un fichier téléchargé sur internet. Jje ne sais pas si ça peut se calculer,
j'en doute un peu, papydall pourrait sans doute répondre (mais où est-il ?).
Le site: https://calendar.center/fr/lever-et-coucher-de-soleil/
- Sélectionner et copier l'ensemble des mois, enregistrer sous:
- C:\TEXTES\SoleilAAAA.txt, AAAA étant l'année.
Chaque ligne correspond à un jour, exemple:
ven., 16 avr. 2021 06:56 20:43 13h 46m
jour, heure de lever, heure de coucher, durée, les 3 dernières données sont précédées d'un caractère
Tab (= 9).
Lever/coucher du soleil Soleil10

Code:
LABEL Lcs
DIM r$,f$,j,m,a,d$,nm$(12),i,k,b$
r$ = "C:\TEXTES\"
DATA "Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août"
DATA "Septembre","Octobre","Novembre","Décembre"
FOR i = 1 TO 12: READ nm$(i): NEXT i
BORDER_SMALL 0
i = WIDTH(0)-WIDTH_CLIENT(0): WIDTH 0,184+i
i = HEIGHT(0)-HEIGHT_CLIENT(0): HEIGHT 0,90+i
COLOR 0,220,255,255
LEFT 0,(SCREEN_X-WIDTH(0))/2: TOP 0,100
CAPTION 0,"LEVER / COUCHER  DU  SOLEIL": FONT_SIZE 0,12
ALPHA 1: LEFT 1,15: CAPTION 1," Jour    Mois  Année"
SPIN 2: TOP 2,TOP(1)+18: LEFT 2,LEFT(1): WIDTH 2,45: MIN 2,1: MAX 2,31
SPIN 3: TOP 3,TOP(2): LEFT 3,LEFT(2)+WIDTH(2)+5: WIDTH 3,45: MIN 3,1: MAX 3,12
SPIN 4: TOP 4,TOP(3): LEFT 4,LEFT(3)+WIDTH(3)+5: WIDTH 4,60: MIN 4,2021
        MAX 4,2050
ALPHA 6: TOP 6,TOP(2)+30: CAPTION 6," Lever  Coucher  Durée"
EDIT 7: TOP 7,TOP(6)+18: WIDTH 7,50
EDIT 8: TOP 8,TOP(7): LEFT 8,LEFT(7)+WIDTH(7)+5: WIDTH 8,WIDTH(7)
EDIT 9: TOP 9,TOP(8): LEFT 9,LEFT(8)+WIDTH(8)+5: WIDTH 9,72
FOR i = 7 TO 9: COLOR i,255,255,0: NEXT i
DLIST 15
d$ = DATE$
j = VAL(LEFT$(d$,2)): m = VAL(MID$(d$,4,2)): a = VAL(RIGHT$(d$,4))
POSITION 2,j: POSITION 3,m: POSITION 4,a
FOR i = 2 TO 4: COLOR i,255,255,220: ON_CHANGE i,Lcs: NEXT i
GOSUB Lcs
END
' =============================================================================
Lcs:
  ' Fichier annuel des lever/coucher de soleil à télécharger sur:
  '      https://calendar.center/fr/lever-et-coucher-de-soleil/
  ' Sélectionner et copier l'ensemble des mois, enregistrer sous:
  ' C:\TEXTES\SoleilAAAA.txt, AAAA étant l'année.
  j = POSITION(2): m = POSITION(3): a = POSITION(4)
  f$ = r$+"Soleil"+STR$(a)+".txt"
  IF FILE_EXISTS(f$) = 0
      b$ = "Année "+STR$(a)+" non répertoriée !"
      b$ = b$+CHR$(10)+"(fichier "+f$+" absent)"
      MESSAGE b$: RETURN
  END_IF
  FILE_LOAD 15,f$
  d$ = nm$(m)
  FOR i = 1 TO COUNT(15): ' recherche mois
      IF ITEM_READ$(15,i) = d$ THEN EXIT_FOR
  NEXT i
  FOR k = i+1 TO COUNT(15): ' recherche jour
      b$ = ITEM_READ$(15,k)
      IF LEN(b$)<10 THEN MESSAGE "Jour incorrect !": RETURN
      IF j = VAL(MID$(b$,7,2)) THEN EXIT_FOR
  NEXT k
  i = INSTR(b$,CHR$(9)): b$ = RIGHT_POS$(b$,i+1)
  i = INSTR(b$,CHR$(9)): TEXT 7,LEFT$(b$,5): b$ = RIGHT_POS$(b$,i+1)
  i = INSTR(b$,CHR$(9)): TEXT 8,LEFT$(b$,5): b$ = RIGHT_POS$(b$,i+1)
  TEXT 9,b$
RETURN
' =============================================================================
Inconvénient: tous les ans il faut aller chercher le nouveau fichier de données...

Tentative d'insertion du fichier pour 2021: ça a l'air de marcher !...
Les commentaires en tête sont pour mémoire et ne gênent pas le fonctionnement.
Donc le texte ci-dessous à enregistrer sous C:\TEXTES\Soleil2021.txt
(on peut évidemment adapter le chemin à son contexte, mais aussi dans le programme !)

Code:
Téléchargé sur https://calendar.center/fr/lever-et-coucher-de-soleil/
(Sélectionner l'ensemble des mois, copier puis coller dans un fichier texte
 -> C:\TEXTES\SoleilAAAA.txt, AAAA étant l'année)
NB: dans une ligne, les éléments sont séparés par un caractère '09' (3 en tout):
                   [09]      [09]    [09]
2021
Janvier
ven., 1 janv. 2021 08:43 17:04 8h 20m
sam., 2 janv. 2021 08:43 17:05 8h 21m
dim., 3 janv. 2021 08:43 17:06 8h 23m
lun., 4 janv. 2021 08:43 17:07 8h 24m
mar., 5 janv. 2021 08:43 17:08 8h 25m
mer., 6 janv. 2021 08:42 17:10 8h 27m
jeu., 7 janv. 2021 08:42 17:11 8h 28m
ven., 8 janv. 2021 08:42 17:12 8h 30m
sam., 9 janv. 2021 08:41 17:13 8h 31m
dim., 10 janv. 2021 08:41 17:15 8h 33m
lun., 11 janv. 2021 08:40 17:16 8h 35m
mar., 12 janv. 2021 08:40 17:17 8h 37m
mer., 13 janv. 2021 08:39 17:19 8h 39m
jeu., 14 janv. 2021 08:39 17:20 8h 41m
ven., 15 janv. 2021 08:38 17:21 8h 43m
sam., 16 janv. 2021 08:37 17:23 8h 45m
dim., 17 janv. 2021 08:36 17:24 8h 47m
lun., 18 janv. 2021 08:35 17:26 8h 50m
mar., 19 janv. 2021 08:35 17:27 8h 52m
mer., 20 janv. 2021 08:34 17:29 8h 55m
jeu., 21 janv. 2021 08:33 17:30 8h 57m
ven., 22 janv. 2021 08:32 17:32 9h 00m
sam., 23 janv. 2021 08:31 17:33 9h 02m
dim., 24 janv. 2021 08:30 17:35 9h 05m
lun., 25 janv. 2021 08:28 17:36 9h 08m
mar., 26 janv. 2021 08:27 17:38 9h 10m
mer., 27 janv. 2021 08:26 17:40 9h 13m
jeu., 28 janv. 2021 08:25 17:41 9h 16m
ven., 29 janv. 2021 08:24 17:43 9h 19m
sam., 30 janv. 2021 08:22 17:45 9h 22m
dim., 31 janv. 2021 08:21 17:46 9h 25m
Février
lun., 1 févr. 2021 08:20 17:48 9h 28m
mar., 2 févr. 2021 08:18 17:49 9h 31m
mer., 3 févr. 2021 08:17 17:51 9h 34m
jeu., 4 févr. 2021 08:15 17:53 9h 37m
ven., 5 févr. 2021 08:14 17:54 9h 40m
sam., 6 févr. 2021 08:12 17:56 9h 43m
dim., 7 févr. 2021 08:11 17:58 9h 46m
lun., 8 févr. 2021 08:09 17:59 9h 50m
mar., 9 févr. 2021 08:08 18:01 9h 53m
mer., 10 févr. 2021 08:06 18:03 9h 56m
jeu., 11 févr. 2021 08:04 18:04 9h 59m
ven., 12 févr. 2021 08:03 18:06 10h 03m
sam., 13 févr. 2021 08:01 18:08 10h 06m
dim., 14 févr. 2021 07:59 18:09 10h 09m
lun., 15 févr. 2021 07:58 18:11 10h 13m
mar., 16 févr. 2021 07:56 18:13 10h 16m
mer., 17 févr. 2021 07:54 18:14 10h 20m
jeu., 18 févr. 2021 07:52 18:16 10h 23m
ven., 19 févr. 2021 07:50 18:17 10h 27m
sam., 20 févr. 2021 07:49 18:19 10h 30m
dim., 21 févr. 2021 07:47 18:21 10h 33m
lun., 22 févr. 2021 07:45 18:22 10h 37m
mar., 23 févr. 2021 07:43 18:24 10h 40m
mer., 24 févr. 2021 07:41 18:26 10h 44m
jeu., 25 févr. 2021 07:39 18:27 10h 48m
ven., 26 févr. 2021 07:37 18:29 10h 51m
sam., 27 févr. 2021 07:35 18:30 10h 55m
dim., 28 févr. 2021 07:33 18:32 10h 58m
Mars
lun., 1 mars 2021 07:31 18:33 11h 02m
mar., 2 mars 2021 07:29 18:35 11h 05m
mer., 3 mars 2021 07:27 18:37 11h 09m
jeu., 4 mars 2021 07:25 18:38 11h 12m
ven., 5 mars 2021 07:23 18:40 11h 16m
sam., 6 mars 2021 07:21 18:41 11h 20m
dim., 7 mars 2021 07:19 18:43 11h 23m
lun., 8 mars 2021 07:17 18:44 11h 27m
mar., 9 mars 2021 07:15 18:46 11h 30m
mer., 10 mars 2021 07:13 18:48 11h 34m
jeu., 11 mars 2021 07:11 18:49 11h 38m
ven., 12 mars 2021 07:09 18:51 11h 41m
sam., 13 mars 2021 07:07 18:52 11h 45m
dim., 14 mars 2021 07:05 18:54 11h 48m
lun., 15 mars 2021 07:03 18:55 11h 52m
mar., 16 mars 2021 07:01 18:57 11h 56m
mer., 17 mars 2021 06:58 18:58 11h 59m
jeu., 18 mars 2021 06:56 19:00 12h 03m
ven., 19 mars 2021 06:54 19:01 12h 07m
sam., 20 mars 2021 06:52 19:03 12h 10m
dim., 21 mars 2021 06:50 19:04 12h 14m
lun., 22 mars 2021 06:48 19:06 12h 17m
mar., 23 mars 2021 06:46 19:07 12h 21m
mer., 24 mars 2021 06:44 19:09 12h 25m
jeu., 25 mars 2021 06:42 19:10 12h 28m
ven., 26 mars 2021 06:40 19:12 12h 32m
sam., 27 mars 2021 06:37 19:13 12h 35m
dim., 28 mars 2021 07:35 20:15 12h 39m
lun., 29 mars 2021 07:33 20:16 12h 43m
mar., 30 mars 2021 07:31 20:18 12h 46m
mer., 31 mars 2021 07:29 20:19 12h 50m
Avril
jeu., 1 avr. 2021 07:27 20:21 12h 53m
ven., 2 avr. 2021 07:25 20:22 12h 57m
sam., 3 avr. 2021 07:23 20:24 13h 01m
dim., 4 avr. 2021 07:21 20:25 13h 04m
lun., 5 avr. 2021 07:19 20:27 13h 08m
mar., 6 avr. 2021 07:17 20:28 13h 11m
mer., 7 avr. 2021 07:15 20:30 13h 15m
jeu., 8 avr. 2021 07:12 20:31 13h 18m
ven., 9 avr. 2021 07:10 20:33 13h 22m
sam., 10 avr. 2021 07:08 20:34 13h 25m
dim., 11 avr. 2021 07:06 20:36 13h 29m
lun., 12 avr. 2021 07:04 20:37 13h 32m
mar., 13 avr. 2021 07:02 20:39 13h 36m
mer., 14 avr. 2021 07:00 20:40 13h 39m
jeu., 15 avr. 2021 06:58 20:42 13h 43m
ven., 16 avr. 2021 06:56 20:43 13h 46m
sam., 17 avr. 2021 06:55 20:45 13h 50m
dim., 18 avr. 2021 06:53 20:46 13h 53m
lun., 19 avr. 2021 06:51 20:48 13h 57m
mar., 20 avr. 2021 06:49 20:49 14h 00m
mer., 21 avr. 2021 06:47 20:51 14h 03m
jeu., 22 avr. 2021 06:45 20:52 14h 07m
ven., 23 avr. 2021 06:43 20:54 14h 10m
sam., 24 avr. 2021 06:41 20:55 14h 13m
dim., 25 avr. 2021 06:39 20:57 14h 17m
lun., 26 avr. 2021 06:38 20:58 14h 20m
mar., 27 avr. 2021 06:36 21:00 14h 23m
mer., 28 avr. 2021 06:34 21:01 14h 26m
jeu., 29 avr. 2021 06:32 21:03 14h 30m
ven., 30 avr. 2021 06:31 21:04 14h 33m
Mai
sam., 1 mai 2021 06:29 21:05 14h 36m
dim., 2 mai 2021 06:27 21:07 14h 39m
lun., 3 mai 2021 06:26 21:08 14h 42m
mar., 4 mai 2021 06:24 21:10 14h 45m
mer., 5 mai 2021 06:22 21:11 14h 48m
jeu., 6 mai 2021 06:21 21:13 14h 51m
ven., 7 mai 2021 06:19 21:14 14h 54m
sam., 8 mai 2021 06:18 21:16 14h 57m
dim., 9 mai 2021 06:16 21:17 15h 00m
lun., 10 mai 2021 06:15 21:18 15h 03m
mar., 11 mai 2021 06:13 21:20 15h 06m
mer., 12 mai 2021 06:12 21:21 15h 09m
jeu., 13 mai 2021 06:10 21:22 15h 12m
ven., 14 mai 2021 06:09 21:24 15h 14m
sam., 15 mai 2021 06:08 21:25 15h 17m
dim., 16 mai 2021 06:06 21:27 15h 20m
lun., 17 mai 2021 06:05 21:28 15h 22m
mar., 18 mai 2021 06:04 21:29 15h 25m
mer., 19 mai 2021 06:03 21:30 15h 27m
jeu., 20 mai 2021 06:02 21:32 15h 30m
ven., 21 mai 2021 06:01 21:33 15h 32m
sam., 22 mai 2021 05:59 21:34 15h 34m
dim., 23 mai 2021 05:58 21:35 15h 36m
lun., 24 mai 2021 05:57 21:37 15h 39m
mar., 25 mai 2021 05:56 21:38 15h 41m
mer., 26 mai 2021 05:55 21:39 15h 43m
jeu., 27 mai 2021 05:55 21:40 15h 45m
ven., 28 mai 2021 05:54 21:41 15h 47m
sam., 29 mai 2021 05:53 21:42 15h 49m
dim., 30 mai 2021 05:52 21:43 15h 51m
lun., 31 mai 2021 05:51 21:44 15h 52m
Juin
mar., 1 juin 2021 05:51 21:45 15h 54m
mer., 2 juin 2021 05:50 21:46 15h 56m
jeu., 3 juin 2021 05:50 21:47 15h 57m
ven., 4 juin 2021 05:49 21:48 15h 58m
sam., 5 juin 2021 05:48 21:49 16h 00m
dim., 6 juin 2021 05:48 21:50 16h 01m
lun., 7 juin 2021 05:48 21:50 16h 02m
mar., 8 juin 2021 05:47 21:51 16h 03m
mer., 9 juin 2021 05:47 21:52 16h 05m
jeu., 10 juin 2021 05:47 21:53 16h 05m
ven., 11 juin 2021 05:46 21:53 16h 06m
sam., 12 juin 2021 05:46 21:54 16h 07m
dim., 13 juin 2021 05:46 21:54 16h 08m
lun., 14 juin 2021 05:46 21:55 16h 09m
mar., 15 juin 2021 05:46 21:55 16h 09m
mer., 16 juin 2021 05:46 21:56 16h 10m
jeu., 17 juin 2021 05:46 21:56 16h 10m
ven., 18 juin 2021 05:46 21:57 16h 10m
sam., 19 juin 2021 05:46 21:57 16h 10m
dim., 20 juin 2021 05:46 21:57 16h 10m
lun., 21 juin 2021 05:46 21:57 16h 10m
mar., 22 juin 2021 05:47 21:58 16h 10m
mer., 23 juin 2021 05:47 21:58 16h 10m
jeu., 24 juin 2021 05:47 21:58 16h 10m
ven., 25 juin 2021 05:48 21:58 16h 10m
sam., 26 juin 2021 05:48 21:58 16h 09m
dim., 27 juin 2021 05:49 21:58 16h 09m
lun., 28 juin 2021 05:49 21:58 16h 08m
mar., 29 juin 2021 05:50 21:58 16h 07m
mer., 30 juin 2021 05:50 21:57 16h 07m
Juillet
jeu., 1 juil. 2021 05:51 21:57 16h 06m
ven., 2 juil. 2021 05:52 21:57 16h 05m
sam., 3 juil. 2021 05:52 21:57 16h 04m
dim., 4 juil. 2021 05:53 21:56 16h 03m
lun., 5 juil. 2021 05:54 21:56 16h 02m
mar., 6 juil. 2021 05:55 21:55 16h 00m
mer., 7 juil. 2021 05:55 21:55 15h 59m
jeu., 8 juil. 2021 05:56 21:54 15h 58m
ven., 9 juil. 2021 05:57 21:54 15h 56m
sam., 10 juil. 2021 05:58 21:53 15h 54m
dim., 11 juil. 2021 05:59 21:52 15h 53m
lun., 12 juil. 2021 06:00 21:52 15h 51m
mar., 13 juil. 2021 06:01 21:51 15h 49m
mer., 14 juil. 2021 06:02 21:50 15h 47m
jeu., 15 juil. 2021 06:03 21:49 15h 46m
ven., 16 juil. 2021 06:04 21:48 15h 44m
sam., 17 juil. 2021 06:05 21:47 15h 42m
dim., 18 juil. 2021 06:06 21:46 15h 39m
lun., 19 juil. 2021 06:08 21:45 15h 37m
mar., 20 juil. 2021 06:09 21:44 15h 35m
mer., 21 juil. 2021 06:10 21:43 15h 33m
jeu., 22 juil. 2021 06:11 21:42 15h 30m
ven., 23 juil. 2021 06:12 21:41 15h 28m
sam., 24 juil. 2021 06:14 21:40 15h 26m
dim., 25 juil. 2021 06:15 21:39 15h 23m
lun., 26 juil. 2021 06:16 21:37 15h 21m
mar., 27 juil. 2021 06:17 21:36 15h 18m
mer., 28 juil. 2021 06:19 21:35 15h 15m
jeu., 29 juil. 2021 06:20 21:33 15h 13m
ven., 30 juil. 2021 06:21 21:32 15h 10m
sam., 31 juil. 2021 06:23 21:30 15h 07m
Août
dim., 1 août 2021 06:24 21:29 15h 05m
lun., 2 août 2021 06:25 21:27 15h 02m
mar., 3 août 2021 06:27 21:26 14h 59m
mer., 4 août 2021 06:28 21:24 14h 56m
jeu., 5 août 2021 06:29 21:23 14h 53m
ven., 6 août 2021 06:31 21:21 14h 50m
sam., 7 août 2021 06:32 21:20 14h 47m
dim., 8 août 2021 06:33 21:18 14h 44m
lun., 9 août 2021 06:35 21:16 14h 41m
mar., 10 août 2021 06:36 21:15 14h 38m
mer., 11 août 2021 06:38 21:13 14h 35m
jeu., 12 août 2021 06:39 21:11 14h 32m
ven., 13 août 2021 06:40 21:09 14h 28m
sam., 14 août 2021 06:42 21:08 14h 25m
dim., 15 août 2021 06:43 21:06 14h 22m
lun., 16 août 2021 06:45 21:04 14h 19m
mar., 17 août 2021 06:46 21:02 14h 16m
mer., 18 août 2021 06:47 21:00 14h 12m
jeu., 19 août 2021 06:49 20:58 14h 09m
ven., 20 août 2021 06:50 20:57 14h 06m
sam., 21 août 2021 06:52 20:55 14h 02m
dim., 22 août 2021 06:53 20:53 13h 59m
lun., 23 août 2021 06:55 20:51 13h 56m
mar., 24 août 2021 06:56 20:49 13h 52m
mer., 25 août 2021 06:57 20:47 13h 49m
jeu., 26 août 2021 06:59 20:45 13h 46m
ven., 27 août 2021 07:00 20:43 13h 42m
sam., 28 août 2021 07:02 20:41 13h 39m
dim., 29 août 2021 07:03 20:39 13h 35m
lun., 30 août 2021 07:04 20:37 13h 32m
mar., 31 août 2021 07:06 20:35 13h 28m
Septembre
mer., 1 sept. 2021 07:07 20:33 13h 25m
jeu., 2 sept. 2021 07:09 20:31 13h 22m
ven., 3 sept. 2021 07:10 20:29 13h 18m
sam., 4 sept. 2021 07:12 20:27 13h 15m
dim., 5 sept. 2021 07:13 20:25 13h 11m
lun., 6 sept. 2021 07:14 20:22 13h 08m
mar., 7 sept. 2021 07:16 20:20 13h 04m
mer., 8 sept. 2021 07:17 20:18 13h 01m
jeu., 9 sept. 2021 07:19 20:16 12h 57m
ven., 10 sept. 2021 07:20 20:14 12h 53m
sam., 11 sept. 2021 07:21 20:12 12h 50m
dim., 12 sept. 2021 07:23 20:10 12h 46m
lun., 13 sept. 2021 07:24 20:08 12h 43m
mar., 14 sept. 2021 07:26 20:06 12h 39m
mer., 15 sept. 2021 07:27 20:03 12h 36m
jeu., 16 sept. 2021 07:29 20:01 12h 32m
ven., 17 sept. 2021 07:30 19:59 12h 29m
sam., 18 sept. 2021 07:31 19:57 12h 25m
dim., 19 sept. 2021 07:33 19:55 12h 22m
lun., 20 sept. 2021 07:34 19:53 12h 18m
mar., 21 sept. 2021 07:36 19:51 12h 14m
mer., 22 sept. 2021 07:37 19:48 12h 11m
jeu., 23 sept. 2021 07:38 19:46 12h 07m
ven., 24 sept. 2021 07:40 19:44 12h 04m
sam., 25 sept. 2021 07:41 19:42 12h 00m
dim., 26 sept. 2021 07:43 19:40 11h 57m
lun., 27 sept. 2021 07:44 19:38 11h 53m
mar., 28 sept. 2021 07:46 19:36 11h 50m
mer., 29 sept. 2021 07:47 19:34 11h 46m
jeu., 30 sept. 2021 07:49 19:31 11h 42m
Octobre
ven., 1 oct. 2021 07:50 19:29 11h 39m
sam., 2 oct. 2021 07:51 19:27 11h 35m
dim., 3 oct. 2021 07:53 19:25 11h 32m
lun., 4 oct. 2021 07:54 19:23 11h 28m
mar., 5 oct. 2021 07:56 19:21 11h 25m
mer., 6 oct. 2021 07:57 19:19 11h 21m
jeu., 7 oct. 2021 07:59 19:17 11h 18m
ven., 8 oct. 2021 08:00 19:15 11h 14m
sam., 9 oct. 2021 08:02 19:13 11h 10m
dim., 10 oct. 2021 08:03 19:11 11h 07m
lun., 11 oct. 2021 08:05 19:09 11h 03m
mar., 12 oct. 2021 08:06 19:07 11h 00m
mer., 13 oct. 2021 08:08 19:05 10h 56m
jeu., 14 oct. 2021 08:09 19:03 10h 53m
ven., 15 oct. 2021 08:11 19:01 10h 49m
sam., 16 oct. 2021 08:12 18:59 10h 46m
dim., 17 oct. 2021 08:14 18:57 10h 42m
lun., 18 oct. 2021 08:15 18:55 10h 39m
mar., 19 oct. 2021 08:17 18:53 10h 36m
mer., 20 oct. 2021 08:19 18:51 10h 32m
jeu., 21 oct. 2021 08:20 18:49 10h 29m
ven., 22 oct. 2021 08:22 18:47 10h 25m
sam., 23 oct. 2021 08:23 18:46 10h 22m
dim., 24 oct. 2021 08:25 18:44 10h 18m
lun., 25 oct. 2021 08:26 18:42 10h 15m
mar., 26 oct. 2021 08:28 18:40 10h 12m
mer., 27 oct. 2021 08:29 18:38 10h 08m
jeu., 28 oct. 2021 08:31 18:37 10h 05m
ven., 29 oct. 2021 08:33 18:35 10h 02m
sam., 30 oct. 2021 08:34 18:33 9h 59m
dim., 31 oct. 2021 07:36 17:32 9h 55m
Novembre
lun., 1 nov. 2021 07:37 17:30 9h 52m
mar., 2 nov. 2021 07:39 17:28 9h 49m
mer., 3 nov. 2021 07:41 17:27 9h 46m
jeu., 4 nov. 2021 07:42 17:25 9h 43m
ven., 5 nov. 2021 07:44 17:24 9h 39m
sam., 6 nov. 2021 07:45 17:22 9h 36m
dim., 7 nov. 2021 07:47 17:21 9h 33m
lun., 8 nov. 2021 07:49 17:19 9h 30m
mar., 9 nov. 2021 07:50 17:18 9h 27m
mer., 10 nov. 2021 07:52 17:16 9h 24m
jeu., 11 nov. 2021 07:53 17:15 9h 21m
ven., 12 nov. 2021 07:55 17:14 9h 18m
sam., 13 nov. 2021 07:56 17:12 9h 16m
dim., 14 nov. 2021 07:58 17:11 9h 13m
lun., 15 nov. 2021 07:59 17:10 9h 10m
mar., 16 nov. 2021 08:01 17:09 9h 07m
mer., 17 nov. 2021 08:03 17:08 9h 05m
jeu., 18 nov. 2021 08:04 17:07 9h 02m
ven., 19 nov. 2021 08:06 17:05 8h 59m
sam., 20 nov. 2021 08:07 17:04 8h 57m
dim., 21 nov. 2021 08:09 17:03 8h 54m
lun., 22 nov. 2021 08:10 17:03 8h 52m
mar., 23 nov. 2021 08:11 17:02 8h 50m
mer., 24 nov. 2021 08:13 17:01 8h 47m
jeu., 25 nov. 2021 08:14 17:00 8h 45m
ven., 26 nov. 2021 08:16 16:59 8h 43m
sam., 27 nov. 2021 08:17 16:58 8h 41m
dim., 28 nov. 2021 08:18 16:58 8h 39m
lun., 29 nov. 2021 08:20 16:57 8h 37m
mar., 30 nov. 2021 08:21 16:57 8h 35m
Décembre
mer., 1 déc. 2021 08:22 16:56 8h 33m
jeu., 2 déc. 2021 08:24 16:56 8h 31m
ven., 3 déc. 2021 08:25 16:55 8h 30m
sam., 4 déc. 2021 08:26 16:55 8h 28m
dim., 5 déc. 2021 08:27 16:54 8h 27m
lun., 6 déc. 2021 08:28 16:54 8h 25m
mar., 7 déc. 2021 08:29 16:54 8h 24m
mer., 8 déc. 2021 08:31 16:54 8h 23m
jeu., 9 déc. 2021 08:32 16:54 8h 21m
ven., 10 déc. 2021 08:33 16:53 8h 20m
sam., 11 déc. 2021 08:34 16:53 8h 19m
dim., 12 déc. 2021 08:34 16:53 8h 18m
lun., 13 déc. 2021 08:35 16:53 8h 18m
mar., 14 déc. 2021 08:36 16:54 8h 17m
mer., 15 déc. 2021 08:37 16:54 8h 16m
jeu., 16 déc. 2021 08:38 16:54 8h 16m
ven., 17 déc. 2021 08:38 16:54 8h 15m
sam., 18 déc. 2021 08:39 16:55 8h 15m
dim., 19 déc. 2021 08:40 16:55 8h 15m
lun., 20 déc. 2021 08:40 16:55 8h 15m
mar., 21 déc. 2021 08:41 16:56 8h 14m
mer., 22 déc. 2021 08:41 16:56 8h 15m
jeu., 23 déc. 2021 08:42 16:57 8h 15m
ven., 24 déc. 2021 08:42 16:57 8h 15m
sam., 25 déc. 2021 08:42 16:58 8h 15m
dim., 26 déc. 2021 08:43 16:59 8h 16m
lun., 27 déc. 2021 08:43 17:00 8h 16m
mar., 28 déc. 2021 08:43 17:00 8h 17m
mer., 29 déc. 2021 08:43 17:01 8h 17m
jeu., 30 déc. 2021 08:43 17:02 8h 18m
ven., 31 déc. 2021 08:43 17:03 8h 19m


Dernière édition par JL35 le Ven 16 Avr 2021 - 17:59, édité 1 fois
Revenir en haut Aller en bas
Marc

Marc


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

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptyVen 16 Avr 2021 - 17:21

Merci JL35 !
Original, sympa !  cheers

Quelques petites remarques :
- Sous Windows 10, les minutes sont tronquées ;
- Lorsque je souhaite afficher les heures du mois d’août, le programme se plante.  Crying or Very sad

Lever/coucher du soleil Jl35_b14

Contenu de mon fichier soleil2021.txt :
Code:
Janvier
ven., 1 janv. 2021 08:43 17:04 8h 20m
sam., 2 janv. 2021 08:43 17:05 8h 21m
dim., 3 janv. 2021 08:43 17:06 8h 23m
lun., 4 janv. 2021 08:43 17:07 8h 24m
mar., 5 janv. 2021 08:43 17:08 8h 25m
mer., 6 janv. 2021 08:42 17:10 8h 27m
jeu., 7 janv. 2021 08:42 17:11 8h 28m
ven., 8 janv. 2021 08:42 17:12 8h 30m
sam., 9 janv. 2021 08:41 17:13 8h 31m
dim., 10 janv. 2021 08:41 17:15 8h 33m
lun., 11 janv. 2021 08:40 17:16 8h 35m
mar., 12 janv. 2021 08:40 17:17 8h 37m
mer., 13 janv. 2021 08:39 17:19 8h 39m
jeu., 14 janv. 2021 08:39 17:20 8h 41m
ven., 15 janv. 2021 08:38 17:21 8h 43m
sam., 16 janv. 2021 08:37 17:23 8h 45m
dim., 17 janv. 2021 08:36 17:24 8h 47m
lun., 18 janv. 2021 08:35 17:26 8h 50m
mar., 19 janv. 2021 08:35 17:27 8h 52m
mer., 20 janv. 2021 08:34 17:29 8h 55m
jeu., 21 janv. 2021 08:33 17:30 8h 57m
ven., 22 janv. 2021 08:32 17:32 9h 00m
sam., 23 janv. 2021 08:31 17:33 9h 02m
dim., 24 janv. 2021 08:30 17:35 9h 05m
lun., 25 janv. 2021 08:28 17:36 9h 08m
mar., 26 janv. 2021 08:27 17:38 9h 10m
mer., 27 janv. 2021 08:26 17:40 9h 13m
jeu., 28 janv. 2021 08:25 17:41 9h 16m
ven., 29 janv. 2021 08:24 17:43 9h 19m
sam., 30 janv. 2021 08:22 17:45 9h 22m
dim., 31 janv. 2021 08:21 17:46 9h 25m
Février
lun., 1 févr. 2021 08:20 17:48 9h 28m
mar., 2 févr. 2021 08:18 17:49 9h 31m
mer., 3 févr. 2021 08:17 17:51 9h 34m
jeu., 4 févr. 2021 08:15 17:53 9h 37m
ven., 5 févr. 2021 08:14 17:54 9h 40m
sam., 6 févr. 2021 08:12 17:56 9h 43m
dim., 7 févr. 2021 08:11 17:58 9h 46m
lun., 8 févr. 2021 08:09 17:59 9h 50m
mar., 9 févr. 2021 08:08 18:01 9h 53m
mer., 10 févr. 2021 08:06 18:03 9h 56m
jeu., 11 févr. 2021 08:04 18:04 9h 59m
ven., 12 févr. 2021 08:03 18:06 10h 03m
sam., 13 févr. 2021 08:01 18:08 10h 06m
dim., 14 févr. 2021 07:59 18:09 10h 09m
lun., 15 févr. 2021 07:58 18:11 10h 13m
mar., 16 févr. 2021 07:56 18:13 10h 16m
mer., 17 févr. 2021 07:54 18:14 10h 20m
jeu., 18 févr. 2021 07:52 18:16 10h 23m
ven., 19 févr. 2021 07:50 18:17 10h 27m
sam., 20 févr. 2021 07:49 18:19 10h 30m
dim., 21 févr. 2021 07:47 18:21 10h 33m
lun., 22 févr. 2021 07:45 18:22 10h 37m
mar., 23 févr. 2021 07:43 18:24 10h 40m
mer., 24 févr. 2021 07:41 18:26 10h 44m
jeu., 25 févr. 2021 07:39 18:27 10h 48m
ven., 26 févr. 2021 07:37 18:29 10h 51m
sam., 27 févr. 2021 07:35 18:30 10h 55m
dim., 28 févr. 2021 07:33 18:32 10h 58m
Mars
lun., 1 mars 2021 07:31 18:33 11h 02m
mar., 2 mars 2021 07:29 18:35 11h 05m
mer., 3 mars 2021 07:27 18:37 11h 09m
jeu., 4 mars 2021 07:25 18:38 11h 12m
ven., 5 mars 2021 07:23 18:40 11h 16m
sam., 6 mars 2021 07:21 18:41 11h 20m
dim., 7 mars 2021 07:19 18:43 11h 23m
lun., 8 mars 2021 07:17 18:44 11h 27m
mar., 9 mars 2021 07:15 18:46 11h 30m
mer., 10 mars 2021 07:13 18:48 11h 34m
jeu., 11 mars 2021 07:11 18:49 11h 38m
ven., 12 mars 2021 07:09 18:51 11h 41m
sam., 13 mars 2021 07:07 18:52 11h 45m
dim., 14 mars 2021 07:05 18:54 11h 48m
lun., 15 mars 2021 07:03 18:55 11h 52m
mar., 16 mars 2021 07:01 18:57 11h 56m
mer., 17 mars 2021 06:58 18:58 11h 59m
jeu., 18 mars 2021 06:56 19:00 12h 03m
ven., 19 mars 2021 06:54 19:01 12h 07m
sam., 20 mars 2021 06:52 19:03 12h 10m
dim., 21 mars 2021 06:50 19:04 12h 14m
lun., 22 mars 2021 06:48 19:06 12h 17m
mar., 23 mars 2021 06:46 19:07 12h 21m
mer., 24 mars 2021 06:44 19:09 12h 25m
jeu., 25 mars 2021 06:42 19:10 12h 28m
ven., 26 mars 2021 06:40 19:12 12h 32m
sam., 27 mars 2021 06:37 19:13 12h 35m
dim., 28 mars 2021 07:35 20:15 12h 39m
lun., 29 mars 2021 07:33 20:16 12h 43m
mar., 30 mars 2021 07:31 20:18 12h 46m
mer., 31 mars 2021 07:29 20:19 12h 50m
Avril
jeu., 1 avr. 2021 07:27 20:21 12h 53m
ven., 2 avr. 2021 07:25 20:22 12h 57m
sam., 3 avr. 2021 07:23 20:24 13h 01m
dim., 4 avr. 2021 07:21 20:25 13h 04m
lun., 5 avr. 2021 07:19 20:27 13h 08m
mar., 6 avr. 2021 07:17 20:28 13h 11m
mer., 7 avr. 2021 07:15 20:30 13h 15m
jeu., 8 avr. 2021 07:12 20:31 13h 18m
ven., 9 avr. 2021 07:10 20:33 13h 22m
sam., 10 avr. 2021 07:08 20:34 13h 25m
dim., 11 avr. 2021 07:06 20:36 13h 29m
lun., 12 avr. 2021 07:04 20:37 13h 32m
mar., 13 avr. 2021 07:02 20:39 13h 36m
mer., 14 avr. 2021 07:00 20:40 13h 39m
jeu., 15 avr. 2021 06:58 20:42 13h 43m
ven., 16 avr. 2021 06:56 20:43 13h 46m
sam., 17 avr. 2021 06:55 20:45 13h 50m
dim., 18 avr. 2021 06:53 20:46 13h 53m
lun., 19 avr. 2021 06:51 20:48 13h 57m
mar., 20 avr. 2021 06:49 20:49 14h 00m
mer., 21 avr. 2021 06:47 20:51 14h 03m
jeu., 22 avr. 2021 06:45 20:52 14h 07m
ven., 23 avr. 2021 06:43 20:54 14h 10m
sam., 24 avr. 2021 06:41 20:55 14h 13m
dim., 25 avr. 2021 06:39 20:57 14h 17m
lun., 26 avr. 2021 06:38 20:58 14h 20m
mar., 27 avr. 2021 06:36 21:00 14h 23m
mer., 28 avr. 2021 06:34 21:01 14h 26m
jeu., 29 avr. 2021 06:32 21:03 14h 30m
ven., 30 avr. 2021 06:31 21:04 14h 33m
Mai
sam., 1 mai 2021 06:29 21:05 14h 36m
dim., 2 mai 2021 06:27 21:07 14h 39m
lun., 3 mai 2021 06:26 21:08 14h 42m
mar., 4 mai 2021 06:24 21:10 14h 45m
mer., 5 mai 2021 06:22 21:11 14h 48m
jeu., 6 mai 2021 06:21 21:13 14h 51m
ven., 7 mai 2021 06:19 21:14 14h 54m
sam., 8 mai 2021 06:18 21:16 14h 57m
dim., 9 mai 2021 06:16 21:17 15h 00m
lun., 10 mai 2021 06:15 21:18 15h 03m
mar., 11 mai 2021 06:13 21:20 15h 06m
mer., 12 mai 2021 06:12 21:21 15h 09m
jeu., 13 mai 2021 06:10 21:22 15h 12m
ven., 14 mai 2021 06:09 21:24 15h 14m
sam., 15 mai 2021 06:08 21:25 15h 17m
dim., 16 mai 2021 06:06 21:27 15h 20m
lun., 17 mai 2021 06:05 21:28 15h 22m
mar., 18 mai 2021 06:04 21:29 15h 25m
mer., 19 mai 2021 06:03 21:30 15h 27m
jeu., 20 mai 2021 06:02 21:32 15h 30m
ven., 21 mai 2021 06:01 21:33 15h 32m
sam., 22 mai 2021 05:59 21:34 15h 34m
dim., 23 mai 2021 05:58 21:35 15h 36m
lun., 24 mai 2021 05:57 21:37 15h 39m
mar., 25 mai 2021 05:56 21:38 15h 41m
mer., 26 mai 2021 05:55 21:39 15h 43m
jeu., 27 mai 2021 05:55 21:40 15h 45m
ven., 28 mai 2021 05:54 21:41 15h 47m
sam., 29 mai 2021 05:53 21:42 15h 49m
dim., 30 mai 2021 05:52 21:43 15h 51m
lun., 31 mai 2021 05:51 21:44 15h 52m
Juin
mar., 1 juin 2021 05:51 21:45 15h 54m
mer., 2 juin 2021 05:50 21:46 15h 56m
jeu., 3 juin 2021 05:50 21:47 15h 57m
ven., 4 juin 2021 05:49 21:48 15h 58m
sam., 5 juin 2021 05:48 21:49 16h 00m
dim., 6 juin 2021 05:48 21:50 16h 01m
lun., 7 juin 2021 05:48 21:50 16h 02m
mar., 8 juin 2021 05:47 21:51 16h 03m
mer., 9 juin 2021 05:47 21:52 16h 05m
jeu., 10 juin 2021 05:47 21:53 16h 05m
ven., 11 juin 2021 05:46 21:53 16h 06m
sam., 12 juin 2021 05:46 21:54 16h 07m
dim., 13 juin 2021 05:46 21:54 16h 08m
lun., 14 juin 2021 05:46 21:55 16h 09m
mar., 15 juin 2021 05:46 21:55 16h 09m
mer., 16 juin 2021 05:46 21:56 16h 10m
jeu., 17 juin 2021 05:46 21:56 16h 10m
ven., 18 juin 2021 05:46 21:57 16h 10m
sam., 19 juin 2021 05:46 21:57 16h 10m
dim., 20 juin 2021 05:46 21:57 16h 10m
lun., 21 juin 2021 05:46 21:57 16h 10m
mar., 22 juin 2021 05:47 21:58 16h 10m
mer., 23 juin 2021 05:47 21:58 16h 10m
jeu., 24 juin 2021 05:47 21:58 16h 10m
ven., 25 juin 2021 05:48 21:58 16h 10m
sam., 26 juin 2021 05:48 21:58 16h 09m
dim., 27 juin 2021 05:49 21:58 16h 09m
lun., 28 juin 2021 05:49 21:58 16h 08m
mar., 29 juin 2021 05:50 21:58 16h 07m
mer., 30 juin 2021 05:50 21:57 16h 07m
Juillet
jeu., 1 juil. 2021 05:51 21:57 16h 06m
ven., 2 juil. 2021 05:52 21:57 16h 05m
sam., 3 juil. 2021 05:52 21:57 16h 04m
dim., 4 juil. 2021 05:53 21:56 16h 03m
lun., 5 juil. 2021 05:54 21:56 16h 02m
mar., 6 juil. 2021 05:55 21:55 16h 00m
mer., 7 juil. 2021 05:55 21:55 15h 59m
jeu., 8 juil. 2021 05:56 21:54 15h 58m
ven., 9 juil. 2021 05:57 21:54 15h 56m
sam., 10 juil. 2021 05:58 21:53 15h 54m
dim., 11 juil. 2021 05:59 21:52 15h 53m
lun., 12 juil. 2021 06:00 21:52 15h 51m
mar., 13 juil. 2021 06:01 21:51 15h 49m
mer., 14 juil. 2021 06:02 21:50 15h 47m
jeu., 15 juil. 2021 06:03 21:49 15h 46m
ven., 16 juil. 2021 06:04 21:48 15h 44m
sam., 17 juil. 2021 06:05 21:47 15h 42m
dim., 18 juil. 2021 06:06 21:46 15h 39m
lun., 19 juil. 2021 06:08 21:45 15h 37m
mar., 20 juil. 2021 06:09 21:44 15h 35m
mer., 21 juil. 2021 06:10 21:43 15h 33m
jeu., 22 juil. 2021 06:11 21:42 15h 30m
ven., 23 juil. 2021 06:12 21:41 15h 28m
sam., 24 juil. 2021 06:14 21:40 15h 26m
dim., 25 juil. 2021 06:15 21:39 15h 23m
lun., 26 juil. 2021 06:16 21:37 15h 21m
mar., 27 juil. 2021 06:17 21:36 15h 18m
mer., 28 juil. 2021 06:19 21:35 15h 15m
jeu., 29 juil. 2021 06:20 21:33 15h 13m
ven., 30 juil. 2021 06:21 21:32 15h 10m
sam., 31 juil. 2021 06:23 21:30 15h 07m
Août
dim., 1 août 2021 06:24 21:29 15h 05m
lun., 2 août 2021 06:25 21:27 15h 02m
mar., 3 août 2021 06:27 21:26 14h 59m
mer., 4 août 2021 06:28 21:24 14h 56m
jeu., 5 août 2021 06:29 21:23 14h 53m
ven., 6 août 2021 06:31 21:21 14h 50m
sam., 7 août 2021 06:32 21:20 14h 47m
dim., 8 août 2021 06:33 21:18 14h 44m
lun., 9 août 2021 06:35 21:16 14h 41m
mar., 10 août 2021 06:36 21:15 14h 38m
mer., 11 août 2021 06:38 21:13 14h 35m
jeu., 12 août 2021 06:39 21:11 14h 32m
ven., 13 août 2021 06:40 21:09 14h 28m
sam., 14 août 2021 06:42 21:08 14h 25m
dim., 15 août 2021 06:43 21:06 14h 22m
lun., 16 août 2021 06:45 21:04 14h 19m
mar., 17 août 2021 06:46 21:02 14h 16m
mer., 18 août 2021 06:47 21:00 14h 12m
jeu., 19 août 2021 06:49 20:58 14h 09m
ven., 20 août 2021 06:50 20:57 14h 06m
sam., 21 août 2021 06:52 20:55 14h 02m
dim., 22 août 2021 06:53 20:53 13h 59m
lun., 23 août 2021 06:55 20:51 13h 56m
mar., 24 août 2021 06:56 20:49 13h 52m
mer., 25 août 2021 06:57 20:47 13h 49m
jeu., 26 août 2021 06:59 20:45 13h 46m
ven., 27 août 2021 07:00 20:43 13h 42m
sam., 28 août 2021 07:02 20:41 13h 39m
dim., 29 août 2021 07:03 20:39 13h 35m
lun., 30 août 2021 07:04 20:37 13h 32m
mar., 31 août 2021 07:06 20:35 13h 28m
Septembre
mer., 1 sept. 2021 07:07 20:33 13h 25m
jeu., 2 sept. 2021 07:09 20:31 13h 22m
ven., 3 sept. 2021 07:10 20:29 13h 18m
sam., 4 sept. 2021 07:12 20:27 13h 15m
dim., 5 sept. 2021 07:13 20:25 13h 11m
lun., 6 sept. 2021 07:14 20:22 13h 08m
mar., 7 sept. 2021 07:16 20:20 13h 04m
mer., 8 sept. 2021 07:17 20:18 13h 01m
jeu., 9 sept. 2021 07:19 20:16 12h 57m
ven., 10 sept. 2021 07:20 20:14 12h 53m
sam., 11 sept. 2021 07:21 20:12 12h 50m
dim., 12 sept. 2021 07:23 20:10 12h 46m
lun., 13 sept. 2021 07:24 20:08 12h 43m
mar., 14 sept. 2021 07:26 20:06 12h 39m
mer., 15 sept. 2021 07:27 20:03 12h 36m
jeu., 16 sept. 2021 07:29 20:01 12h 32m
ven., 17 sept. 2021 07:30 19:59 12h 29m
sam., 18 sept. 2021 07:31 19:57 12h 25m
dim., 19 sept. 2021 07:33 19:55 12h 22m
lun., 20 sept. 2021 07:34 19:53 12h 18m
mar., 21 sept. 2021 07:36 19:51 12h 14m
mer., 22 sept. 2021 07:37 19:48 12h 11m
jeu., 23 sept. 2021 07:38 19:46 12h 07m
ven., 24 sept. 2021 07:40 19:44 12h 04m
sam., 25 sept. 2021 07:41 19:42 12h 00m
dim., 26 sept. 2021 07:43 19:40 11h 57m
lun., 27 sept. 2021 07:44 19:38 11h 53m
mar., 28 sept. 2021 07:46 19:36 11h 50m
mer., 29 sept. 2021 07:47 19:34 11h 46m
jeu., 30 sept. 2021 07:49 19:31 11h 42m
Octobre
ven., 1 oct. 2021 07:50 19:29 11h 39m
sam., 2 oct. 2021 07:51 19:27 11h 35m
dim., 3 oct. 2021 07:53 19:25 11h 32m
lun., 4 oct. 2021 07:54 19:23 11h 28m
mar., 5 oct. 2021 07:56 19:21 11h 25m
mer., 6 oct. 2021 07:57 19:19 11h 21m
jeu., 7 oct. 2021 07:59 19:17 11h 18m
ven., 8 oct. 2021 08:00 19:15 11h 14m
sam., 9 oct. 2021 08:02 19:13 11h 10m
dim., 10 oct. 2021 08:03 19:11 11h 07m
lun., 11 oct. 2021 08:05 19:09 11h 03m
mar., 12 oct. 2021 08:06 19:07 11h 00m
mer., 13 oct. 2021 08:08 19:05 10h 56m
jeu., 14 oct. 2021 08:09 19:03 10h 53m
ven., 15 oct. 2021 08:11 19:01 10h 49m
sam., 16 oct. 2021 08:12 18:59 10h 46m
dim., 17 oct. 2021 08:14 18:57 10h 42m
lun., 18 oct. 2021 08:15 18:55 10h 39m
mar., 19 oct. 2021 08:17 18:53 10h 36m
mer., 20 oct. 2021 08:19 18:51 10h 32m
jeu., 21 oct. 2021 08:20 18:49 10h 29m
ven., 22 oct. 2021 08:22 18:47 10h 25m
sam., 23 oct. 2021 08:23 18:46 10h 22m
dim., 24 oct. 2021 08:25 18:44 10h 18m
lun., 25 oct. 2021 08:26 18:42 10h 15m
mar., 26 oct. 2021 08:28 18:40 10h 12m
mer., 27 oct. 2021 08:29 18:38 10h 08m
jeu., 28 oct. 2021 08:31 18:37 10h 05m
ven., 29 oct. 2021 08:33 18:35 10h 02m
sam., 30 oct. 2021 08:34 18:33 9h 59m
dim., 31 oct. 2021 07:36 17:32 9h 55m
Novembre
lun., 1 nov. 2021 07:37 17:30 9h 52m
mar., 2 nov. 2021 07:39 17:28 9h 49m
mer., 3 nov. 2021 07:41 17:27 9h 46m
jeu., 4 nov. 2021 07:42 17:25 9h 43m
ven., 5 nov. 2021 07:44 17:24 9h 39m
sam., 6 nov. 2021 07:45 17:22 9h 36m
dim., 7 nov. 2021 07:47 17:21 9h 33m
lun., 8 nov. 2021 07:49 17:19 9h 30m
mar., 9 nov. 2021 07:50 17:18 9h 27m
mer., 10 nov. 2021 07:52 17:16 9h 24m
jeu., 11 nov. 2021 07:53 17:15 9h 21m
ven., 12 nov. 2021 07:55 17:14 9h 18m
sam., 13 nov. 2021 07:56 17:12 9h 16m
dim., 14 nov. 2021 07:58 17:11 9h 13m
lun., 15 nov. 2021 07:59 17:10 9h 10m
mar., 16 nov. 2021 08:01 17:09 9h 07m
mer., 17 nov. 2021 08:03 17:08 9h 05m
jeu., 18 nov. 2021 08:04 17:07 9h 02m
ven., 19 nov. 2021 08:06 17:05 8h 59m
sam., 20 nov. 2021 08:07 17:04 8h 57m
dim., 21 nov. 2021 08:09 17:03 8h 54m
lun., 22 nov. 2021 08:10 17:03 8h 52m
mar., 23 nov. 2021 08:11 17:02 8h 50m
mer., 24 nov. 2021 08:13 17:01 8h 47m
jeu., 25 nov. 2021 08:14 17:00 8h 45m
ven., 26 nov. 2021 08:16 16:59 8h 43m
sam., 27 nov. 2021 08:17 16:58 8h 41m
dim., 28 nov. 2021 08:18 16:58 8h 39m
lun., 29 nov. 2021 08:20 16:57 8h 37m
mar., 30 nov. 2021 08:21 16:57 8h 35m
Décembre
mer., 1 déc. 2021 08:22 16:56 8h 33m
jeu., 2 déc. 2021 08:24 16:56 8h 31m
ven., 3 déc. 2021 08:25 16:55 8h 30m
sam., 4 déc. 2021 08:26 16:55 8h 28m
dim., 5 déc. 2021 08:27 16:54 8h 27m
lun., 6 déc. 2021 08:28 16:54 8h 25m
mar., 7 déc. 2021 08:29 16:54 8h 24m
mer., 8 déc. 2021 08:31 16:54 8h 23m
jeu., 9 déc. 2021 08:32 16:54 8h 21m
ven., 10 déc. 2021 08:33 16:53 8h 20m
sam., 11 déc. 2021 08:34 16:53 8h 19m
dim., 12 déc. 2021 08:34 16:53 8h 18m
lun., 13 déc. 2021 08:35 16:53 8h 18m
mar., 14 déc. 2021 08:36 16:54 8h 17m
mer., 15 déc. 2021 08:37 16:54 8h 16m
jeu., 16 déc. 2021 08:38 16:54 8h 16m
ven., 17 déc. 2021 08:38 16:54 8h 15m
sam., 18 déc. 2021 08:39 16:55 8h 15m
dim., 19 déc. 2021 08:40 16:55 8h 15m
lun., 20 déc. 2021 08:40 16:55 8h 15m
mar., 21 déc. 2021 08:41 16:56 8h 14m
mer., 22 déc. 2021 08:41 16:56 8h 15m
jeu., 23 déc. 2021 08:42 16:57 8h 15m
ven., 24 déc. 2021 08:42 16:57 8h 15m
sam., 25 déc. 2021 08:42 16:58 8h 15m
dim., 26 déc. 2021 08:43 16:59 8h 16m
lun., 27 déc. 2021 08:43 17:00 8h 16m
mar., 28 déc. 2021 08:43 17:00 8h 17m
mer., 29 déc. 2021 08:43 17:01 8h 17m
jeu., 30 déc. 2021 08:43 17:02 8h 18m
ven., 31 déc. 2021 08:43 17:03 8h 19m


Bonne continuation !
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptyVen 16 Avr 2021 - 18:00

Bonsoir Marc,
Pour Windows 10 j'étais en train de corriger c'est fait (je suis sous W7...)
Pour le mois d'août je vais regarder...
Revenir en haut Aller en bas
Marc

Marc


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

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptyVen 16 Avr 2021 - 18:08

... suite

J’ai jeté un œil pour savoir pourquoi ton source plante lorsque je souhaite afficher le mois d’août.
C’est un problème de codage du fichier texte en UTF8.

Sous Windows 10, un fichier texte, (enregistré automatiquement en .txt), conserve le codage d’origine. Le copier-coller provient d’une page Internet en UTF8, il reste donc au format UTF8.
Et c’est là que ça coince, le mot août devient aoA»t. Ton programme ne peut donc pas le trouver…

Je viens de vérifier, la même anomalie se produit avec tous les mois qui comportent une lettre accentuée.

Lever/coucher du soleil Jl35_b15

Cette copie d'écran montre le DLIST 15 du source transformé pour le débogage en LIST 15 dans un FORM séparé du FORM 0.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptyVen 16 Avr 2021 - 18:49

Merci Marc pour ta recherche,
effectivement je ne pouvais pas m'en rendre compte sous W7 !
Bon, je vais regarder ça de plus près...

Désolé mais je n'arrive pas à voir le codage des caractères accentués en utf8
pour pouvoir les remplacer par des caractères ascii classiques.
Pourrais-tu me donner le code UTF8 du 'é' et du 'û' (les seuls concernés)
Sous forme hexa ou décimal (ce sont des chaînes de 2 caractères j'imagine...)

Pour le û, d'après ton affichage, ça semble être C3 BB (cad 195 187),
à confirmer, mais pour le é ?

SUITE
J'ai trouvé pour é = C3 A9, û = C3 BB, d'où:
Code:
LABEL Lcs,Valan
DIM url$,r$,f$,j,m,a,d$,nm$(12),i,k,b$
url$ = "https://calendar.center/fr/lever-et-coucher-de-soleil/"
r$ = "C:\TEXTES"
DATA "Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août"
DATA "Septembre","Octobre","Novembre","Décembre"
FOR i = 1 TO 12: READ nm$(i): NEXT i
BORDER_SMALL 0
i = WIDTH(0)-WIDTH_CLIENT(0): WIDTH 0,184+i
i = HEIGHT(0)-HEIGHT_CLIENT(0): HEIGHT 0,90+i
COLOR 0,220,255,255
LEFT 0,(SCREEN_X-WIDTH(0))/2: TOP 0,100
CAPTION 0,"LEVER / COUCHER  DU  SOLEIL": FONT_SIZE 0,12
ALPHA 1: LEFT 1,15: CAPTION 1," Jour    Mois  Année"
SPIN 2: TOP 2,TOP(1)+18: LEFT 2,LEFT(1): WIDTH 2,45: MIN 2,1: MAX 2,31
SPIN 3: TOP 3,TOP(2): LEFT 3,LEFT(2)+WIDTH(2)+5: WIDTH 3,45: MIN 3,1: MAX 3,12
SPIN 4: TOP 4,TOP(3): LEFT 4,LEFT(3)+WIDTH(3)+5: WIDTH 4,60: MIN 4,2021
        MAX 4,2050
ALPHA 6: TOP 6,TOP(2)+30: CAPTION 6," Lever  Coucher  Durée"
EDIT 7: TOP 7,TOP(6)+18: WIDTH 7,50
EDIT 8: TOP 8,TOP(7): LEFT 8,LEFT(7)+WIDTH(7)+5: WIDTH 8,WIDTH(7)
EDIT 9: TOP 9,TOP(8): LEFT 9,LEFT(8)+WIDTH(8)+5: WIDTH 9,72
FOR i = 7 TO 9: COLOR i,255,255,0: NEXT i
DLIST 15
d$ = DATE$
j = VAL(LEFT$(d$,2)): m = VAL(MID$(d$,4,2)): a = VAL(RIGHT$(d$,4))
POSITION 2,j: POSITION 3,m: POSITION 4,a
FOR i = 2 TO 4: COLOR i,255,255,220: ON_CHANGE i,Lcs: NEXT i
ON_CHANGE 4,Valan
GOSUB Valan
GOSUB Lcs
END
' =============================================================================
Lcs:
  ' Lever, coucher, durée pour le jour sélectionné
  j = POSITION(2): m = POSITION(3): a = POSITION(4)
  d$ = nm$(m)
  FOR i = 1 TO COUNT(15): ' recherche mois
      IF ITEM_READ$(15,i) = d$ THEN EXIT_FOR
  NEXT i
  FOR k = i+1 TO COUNT(15): ' recherche jour
      b$ = ITEM_READ$(15,k)
      IF LEN(b$)<10 THEN MESSAGE "Jour incorrect !": RETURN
      IF j = VAL(MID$(b$,7,2)) THEN EXIT_FOR
  NEXT k
  i = INSTR(b$,CHR$(9)): b$ = RIGHT_POS$(b$,i+1)
  i = INSTR(b$,CHR$(9)): TEXT 7,LEFT$(b$,5): b$ = RIGHT_POS$(b$,i+1)
  i = INSTR(b$,CHR$(9)): TEXT 8,LEFT$(b$,5): b$ = RIGHT_POS$(b$,i+1)
  TEXT 9,b$
RETURN
' =============================================================================
Valan:
  ' Validation de l'année, recherche du fichier correspondant
  ' Fichier annuel des lever/coucher de soleil à télécharger sur:
  '      https://calendar.center/fr/lever-et-coucher-de-soleil/
  ' Sélectionner et copier l'ensemble des mois, enregistrer sous:
  ' C:\TEXTES\SoleilAAAA.txt, AAAA étant l'année.  
  a = POSITION(4)
  f$ = r$+"Soleil"+STR$(a)+".txt"
  IF FILE_EXISTS(f$) = 0
      b$ = "Année "+STR$(a)+" non répertoriée !"
      b$ = b$+CHR$(10)+"(fichier "+f$+" absent)"
      MESSAGE b$: RETURN
  END_IF
  FILE_LOAD 15,f$
  FOR i = 1 TO COUNT(15): ' remplacement éventuel lettres accentuées dans les mois
      b$ = ITEM_READ$(15,i)
      IF LEN(b$)<20
          k = INSTR(b$,CHR$(195)+CHR$(169)): ' caractère é (C3 A9)
          IF k>0
              b$ = LEFT$(b$,k-1)+CHR$(82)+RIGHT_POS$(b$,k+2)
              ITEM_DELETE 15,i: ITEM_INSERT 15,i,b$
          ELSE
              k = INSTR(b$,CHR$(195)+CHR$(187)): ' caractère û (C3 BB)
              IF k>0
                  b$ = LEFT$(b$,k-1)+CHR$(96)+RIGHT_POS$(b$,k+2)
                  ITEM_DELETE 15,i: ITEM_INSERT 15,i,b$
              END_IF
          END_IF
      END_IF
  NEXT i
RETURN
' =============================================================================

Une remarque en passant concernant l'instruction ITEM_INSERT N,L,T
l'insertion s'effectue AVANT la ligne L et non après comme indiqué dans la doc.

Rectif 16/4 22h00


Dernière édition par JL35 le Ven 16 Avr 2021 - 22:02, édité 1 fois
Revenir en haut Aller en bas
Marc

Marc


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

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptyVen 16 Avr 2021 - 21:27

@JL35
Citation :
J'ai trouvé pour é = C3 A9, û = C3 BB,

Oui, tu as raison.

Je viens d'essayer ton source modifié. Je suis désolé, c'est toujours le même problème.

Dans le code que tu as posté, je vois un ITEM_READ$(15,1). Le "1" ne me parait pas normal. (Ligne 67)

Lever/coucher du soleil Jl35_b16


Si cela peut t'aider, voici le copier-coller du fichier texte UTF8 : https://mon-partage.fr/f/xuPcW4OF/

Bonne continuation !
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptyVen 16 Avr 2021 - 22:01

Oui tu as raison, ce n'est pas 15,1 mais 15,i (la lettre i, index dans le dlist.
Je corrige ci-dessus, et merci pour tes essais sous W10.
Revenir en haut Aller en bas
papydall

papydall


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

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptySam 17 Avr 2021 - 1:24

Salut tout le monde.
Je reviens après une absence de plus de trois mois !

JL35 a écrit:
Les données sont extraites d'un fichier téléchargé sur internet. Jje ne sais pas si ça peut se calculer,
j'en doute un peu, papydall pourrait sans doute répondre (mais où est-il ?).

Tout peut se calculer à condition d’en maitriser les formules.
Voici un exemple de fonction de calcul du lever et coucher du soleil pour une ville donnée et une date donnée.
La fonction retourne les heures en GMT sans tenir compte ni de l’heure locale ni celle de l’été.
Vous pouvez l’adapter selon vos gouts.

Code:

rem ============================================================================
rem Fonction calculant le lever et le coucher du soleil pour une date et une
rem ville données.
rem Adaptation par Papydall en Panoramic d’un code source en PHP
rem ============================================================================
rem Les heures retournées par la fonction ne tiennent pas compte de l’heure d’été.
rem Elles sont en GMT
rem Il faut donc en tenir compte pour l’heure locale :
rem GMT + 1 pour la Tunisie hiver comme été
rem GMT + 1 pour la France en hiver
rem GMT + 2 pour la France en été
rem ============================================================================
rem  La précision du calcul est de l’ordre de 2 minutes
rem ============================================================================

' Exemples d'appel
print SunRise_SunSet$("Moknine",35.550,10.833,10,08,1950)
print SunRise_SunSet$("Paris",48.8534,2.3488,1,1,2021)  
print SunRise_SunSet$("Paris",48.8534,2.3488,date_day,date_month,date_year)
print SunRise_SunSet$("Stockholm",59.333,18.083,date_day,date_month,date_year)
print SunRise_SunSet$("xxxxx",88.8888,0.0000,1,1,2021)

end
rem ============================================================================
' *  Calcul du lever et coucher du soleil n'importe quand et n'importe où.
' *  Il suffit de modifier la ville et ses coordonnées
'    Latitude  ( positive à l'hémisphère Nord et négative à l'hémisphère Sud)
'    Longitude ( positive à l'EST et négative à l'OUEST )
'
'    Ville$ = "MOKNINE"    : La = 35.550  : Lo = 10.833 : ' C'est ma ville de Tunisie
'    Ville$ = "Stockholm"  : La = 59.333  : Lo = 18.083
'    Ville$ = "xxxxx"      : La = 88.000  : Lo = 0.000
'    ville$ = "PARIS"      : La = 48.8534  : Lo = 2.3488
' ------------------------------------------------------------------------------
' Voici les coordonnées des quelques villes Françaises
'    ville$ = "TOULOUSE"         : La = 43.617 : Lo = 1.450
'    Ville$ = "STASBOURG"        : La = 48.583 : Lo = 7.750
'    Ville$ = "MARSEILLE"        : La = 43.300 : Lo = 5.367
'    Ville$ = "GRENOBLE"         : La = 45.183 : Lo = 5.717
'    Ville$ = "CHERBOURG"        : La = 49.633 : Lo = 0-1.617
'    Ville$ = "BORDEAUX"         : La = 44.833 : Lo = 0-0.567
'    Ville$ = "BREST"            : La = 48.383 : Lo = 0-4.500
'    Ville$ = "LILLE"            : La = 50.650 : Lo = 3.083
'    Ville$ = "CLERMONT-FERRAND" : La = 45.783 : Lo = 3.083
' ------------------------------------------------------------------------------
FNC SunRise_SunSet$(ville$,latitude,longitude,jour,mois,annee)
    if label("NeSeLevePas")   = 0 then label NeSeLevePas
    if label("NeSeCouchePas") = 0 then label NeSeCouchePas
    dim_local k,jm,jl,e,ob
    dim_local tex$,res$
    dim_local dr,hr,ht,h,j,m,L,s,x,y,z,R,rx,ry,ET,DC,cs,ah,pm,hs,fh
    dim_local CalculSol$,hs$,pm$,lev$,couch$
    
    caption 0,"LEVER ET COUCHER DU SOLEIL"
    tex$ = "   VILLE : " + Ville$
    tex$ = tex$ + "  -  DATE  " + STR$(jour) + " / " + str$(mois) + " / " + str$(annee) + " : "
      
' Fuseau horaire et coordonnées géographiques
    k = 0.0172024 : jm = 308.67 : jl = 21.55 : e = 0.0167 : ob = 0.4091
    
' Hauteur du soleil au lever et au coucher
    dr = PI/ 180 : hr = PI/ 12 : ht = (-40 / 60) : ht = ht * dr
    Latitude = Latitude * dr : Longitude = 0-Longitude * dr
' Date
    IF (mois < 3) then mois = mois + 12
' Heure TU du milieu de la journée
    h = 12 + (Longitude / hr)
' Nombre de jours écoulés depuis le 1 Mars O h TU
    J = int(30.61 * (mois + 1)) + jour + (h / 24) - 123
' Anomalie et longitude moyenne
    M = k * (J - jm) : L = k * (J - jl)
' Longitude vraie
    S = L + 2 * e * Sin(M) + 1.25 * e * e * Sin(2 * M)
' Coordonnées rectangulaires du soleil dans le repère équatorial
    X = Cos(S) : Y = Cos(ob) * Sin(S) : Z = Sin(ob) * Sin(S)
' Equation du temps et déclinaison
    R = L  : rx = Cos(R) * X + Sin(R) * Y : ry = 0-Sin(R) * X + Cos(R) * Y
    X = rx : Y  = ry : ET = atn(Y / X)    : DC = atn(Z / Sqr(1 - Z * Z))
' Angle horaire au lever et au coucher
  cs = (Sin(ht) - Sin(Latitude) * Sin(DC)) / Cos(Latitude) / Cos(DC)
  
  IF (cs > 1)  then CalculSol$ = "Ne se lève pas"   : goto NeSeLevePas
  IF (cs < -1) then CalculSol$ = "Ne se couche pas" : goto NeSeCouchePas
  IF (cs = 0)  then ah = PI / 2 : ELSE : ah = atn(Sqr(1 - cs * cs) / cs)
  IF (cs < 0)  then ah = ah + PI
' Lever du soleil
  Pm = h + fh + (ET - ah) / hr
  IF (Pm < 0) then Pm = Pm + 24
  IF (Pm > 24) then Pm = Pm - 24
  hs = int(Pm) : Pm = int(60 * (Pm - hs))
  hs$ = str$(hs) : pm$ = str$(pm)

  IF len(str$(hs)) < 2 then hs$ = "0" + str$(hs)
  IF len(str$(Pm)) < 2 then Pm$ = "0" + str$(Pm)
 NeSeLevePas:
  IF CalculSol$ = "" then lev$ = hs$ + ":" + Pm$ : ELSE : lev$ = "-----"
' Coucher du soleil
  Pm = h + fh + (ET + ah) /hr
  IF Pm > 24 then Pm = Pm - 24
  IF Pm < 0  then Pm = Pm + 24
  hs = int(Pm) : Pm = int(60 * (Pm - hs))
  hs$ = str$(hs) : pm$ = str$(pm)

  IF len(str$(hs)) < 2 then hs$ = "0" + str$(hs)
  IF len(str$(Pm)) < 2 then Pm$ = "0" + str$(Pm)
  
 NeSeCouchePas:
  IF CalculSol$ = "" then couch$ = hs$ + ":" + Pm$ : ELSE : couch$  = "-----"

  res$ = tex$ + "Lever = " + lev$ + " GMT / "
  res$ = res$ + "Coucher = " + couch$ + " GMT"
  result res$ : ' <---- les heures sont en GMT
END_FNC
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


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

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptySam 17 Avr 2021 - 5:24

Voici la référence incontournable du calcul astronomique : Astronomical algorithms by Jean Meeus.
Vous pouvez télécharger gratuitement la seconde édition en PDF à partir de cette adresse :
http://www.agopax.it/Libri_astronomia/pdf/Astronomical%20Algorithms.pdf
C’est écrit dans la langue de Shakespeare  Embarassed
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptySam 17 Avr 2021 - 10:23

Un grand merci à toi papydall, et surtout je suis content d'avoir de tes nouvelles.
J'avais aussi trouvé quelques formules en cherchant sur internet, mais toutes très compliquées
(ce qui est normal me semble-t'il, vu le nombre de paramètres impliqués).
Je vais regarder tes références, et surtout ton exemple de code de plus près, et encore merci.
Revenir en haut Aller en bas
jean_debord

jean_debord


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

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptySam 17 Avr 2021 - 11:44

Heureux de te retrouver papydall Smile

Et merci pour la référence.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Jack
Admin
Jack


Nombre de messages : 2386
Date d'inscription : 28/05/2007

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptySam 17 Avr 2021 - 13:46

Content aussi de te revoir sur le forum, papydall.

_________________
Lever/coucher du soleil Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptySam 17 Avr 2021 - 14:59

Voilà, j'ai fait une sub, pratiquement copiée sur l'exemple de l'ami papydall, qui renvoie dans le clipboard
une chaîne de la forme h1:m1 h2:m2 h3:m3 donnant respectivement les heures/minutes de lever, de coucher
et de durée de l'ensoleillement (enfin, s'il n'y a a pas de nuages...).
Les heures sont rendues en heures locales pour la France (GMT+1 l'hiver, GMT+2 l'été)
Les paramètres sont la latitude et longitude du lieu, et la date. Tout ce que je cherchais.
Encore merci à toi papydall, et tous mes voeux.
L'appel en exemple est pour Paris:
Code:
DIM lat,long,b$,j,m,a
b$ = DATE$: ' date du jour
j = VAL(LEFT$(b$,2)): m = VAL(MID$(b$,4,2)): a = VAL(RIGHT$(b$,4))
lat = 48.8534: long = 2.3488: ' *** latitude, longitude de Paris ***
Lever_Coucher(lat,long,j,m,a)
print clipboard_string_paste$
END

SUB Lever_Coucher(Latitude,Longitude,jour,mois,annee)
    ' *************** merci papydall ***************
    if label("NeSeLevePas")   = 0 then label NeSeLevePas
    if label("NeSeCouchePas") = 0 then label NeSeCouchePas
    IF LABEL("Ete_Hiver") = 0 THEN LABEL Ete_Hiver
    dim_local k,jm,jl,e,ob
    dim_local tex$,res$
    dim_local dr,hr,ht,h,j,m,L,s,x,y,z,R,rx,ry,ET,DC,cs,ah,pm,hs,fh
    dim_local CalculSol$,hs$,pm$,lev$,couch$
    DIM_LOCAL h$,h1,m1,h2,m2,h3,m3,d,qj%,mm,a_h%,b_h%, s_h%
    ' tex$ = STR$(jour)+" / "+str$(mois)+" / "+str$(annee)+" :  "
' Fuseau horaire et coordonnées géographiques
    k = 0.0172024: jm = 308.67: jl = 21.55: e = 0.0167: ob = 0.4091
' Hauteur du soleil au lever et au coucher
    dr = PI/ 180 : hr = PI/ 12 : ht = (-40 / 60) : ht = ht * dr
    Latitude = Latitude * dr : Longitude = 0-Longitude * dr
' Date
    IF (mois < 3) then mois = mois + 12
' Heure TU du milieu de la journée
    h = 12 + (Longitude / hr)
' Nombre de jours écoulés depuis le 1 Mars O h TU
    J = int(30.61 * (mois + 1)) + jour + (h / 24) - 123
' Anomalie et longitude moyenne
    M = k * (J - jm) : L = k * (J - jl)
' Longitude vraie
    S = L + 2 * e * Sin(M) + 1.25 * e * e * Sin(2 * M)
' Coordonnées rectangulaires du soleil dans le repère équatorial
    X = Cos(S) : Y = Cos(ob) * Sin(S) : Z = Sin(ob) * Sin(S)
' Equation du temps et déclinaison
    R = L  : rx = Cos(R) * X + Sin(R) * Y : ry = 0-Sin(R) * X + Cos(R) * Y
    X = rx : Y  = ry : ET = atn(Y / X)    : DC = atn(Z / Sqr(1 - Z * Z))
' Angle horaire au lever et au coucher
  cs = (Sin(ht) - Sin(Latitude) * Sin(DC)) / Cos(Latitude) / Cos(DC)
  IF (cs > 1)  then CalculSol$ = "Ne se lève pas"   : goto NeSeLevePas
  IF (cs < -1) then CalculSol$ = "Ne se couche pas" : goto NeSeCouchePas
  IF (cs = 0)  then ah = PI / 2 : ELSE : ah = atn(Sqr(1 - cs * cs) / cs)
  IF (cs < 0)  then ah = ah + PI
' Lever du soleil
  pm = h + fh + (ET - ah) / hr
  IF (pm < 0) then pm = pm + 24
  IF (pm > 24) then pm = pm - 24
  hs = int(pm) : pm = int(60 * (pm - hs))
  hs$ = RIGHT$("0"+STR$(hs),2): pm$ = RIGHT$("0"+STR$(pm),2)
NeSeLevePas:
  IF CalculSol$ = "" then lev$ = hs$ + ":" + pm$ : ELSE : lev$ = "-----"
' Coucher du soleil
  pm = h + fh + (ET + ah) /hr
  IF pm > 24 then pm = Pm - 24
  IF pm < 0  then pm = pm + 24
  hs = int(pm) : pm = int(60 * (pm - hs))
  hs$ = str$(hs) : pm$ = str$(pm)
  IF len(str$(hs)) < 2 then hs$ = "0" + str$(hs)
  IF len(str$(Pm)) < 2 then pm$ = "0" + str$(pm)
NeSeCouchePas:
  IF CalculSol$ = "" then couch$ = hs$ + ":" + pm$ : ELSE : couch$  = "-----"
  h1 = VAL(LEFT$(lev$,2)): m1 = VAL(MID$(lev$,4,2)): ' h:m lever
  h2 = VAL(LEFT$(couch$,2)): m2 = VAL(MID$(couch$,4,2)): ' h:m coucher
  d = h2*60+m2-(h1*60+m1): h3 = INT(d/60): m3 = d-h3*60: ' h:m durée  
' Heures locales
  j = jour: m = mois: a = annee
  h1 = h1+1: h2 = h2+1: ' heure d'hiver (GMT+1)
  IF m > 3 AND m < 10 THEN h1 = h1+1: h2 = h2+1: ' heure d'été (GMT+2)
  IF m = 3
      GOSUB Ete_Hiver: IF j >= qj% THEN h1 = h1+1: h2 = h2+1
  ELSE
      IF m = 10
          GOSUB Ete_Hiver: IF j < qj% THEN h1 = h1+1: h2 = h2+1
      END_IF
  END_IF
  h$ = RIGHT$("0"+STR$(h1),2)+":"+RIGHT$("0"+STR$(m1),2)
  h$ = h$+" "+RIGHT$("0"+STR$(h2),2)+":"+RIGHT$("0"+STR$(m2),2)
  h$ = h$+" "+RIGHT$("0"+STR$(h3),2)+":"+RIGHT$("0"+STR$(m3),2)
  CLIPBOARD_STRING_COPY h$: EXIT_SUB
Ete_Hiver:
  mm = m-2
  s_h% = INT(a/100): a_h% = a - s_h%*100
  b_h% = INT(2.6*mm - .19) + 31 + a_h%+INT(a_h%/4)+INT(s_h%/4)-s_h%*2
  qj% = 31-INT((b_h%/7-INT(b_h%/7))*7+.1)
RETURN  
END_SUB
Revenir en haut Aller en bas
papydall

papydall


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

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptySam 17 Avr 2021 - 15:39

Bonjour les amis
Moi aussi je suis content de vous retrouver.
Je constate avec regret l’absence de Klaus, de Jean Claude, de Minibug, …
Espérons qu’ils se portent bien et que très bientôt on les retrouvera sur le forum.
Personnellement j’ai passé par une mauvaise période (la santé devient fragile, mais il faut faire avec !)
Mon ancien ordinateur (sous W7) qui contenait tout mon travail a décidé de prendre sa retraite en remportant tout avec lui.
J’ai acheté un tout nouveau fonctionnant sous W10 64 bits.
J’essaie de récupérer ce que je peux.

Bon j’arrête de vous raconter mes histoires strictement personnelles et au plaisir de vous lire.

Edit
@JL35 (toujours 35 ? Tu n’a pas monté plus haut ?)
Je viens de voir ta SUB et ça fonctionne.
Merci pour le partage, mais pour justifier ma note de 9.99 /10, je te propose de remplacer la ligne 3
Code:

j = VAL(LEFT$(b$,2)): m = VAL(MID$(b$,4,2)): a = VAL(RIGHT$(b$,4))
Par ceci
Code:

j = date_day : m = date_month : a = date_year

Ha ha ! je vois bien la grimace que tu fais !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptySam 17 Avr 2021 - 16:00

Oh oh ! il va falloir que je pense à couper ma caméra, puisque tu as bien vu la grimace que j'ai fait !
Effectivement je les avais loupés ceux-là !
Quant au 35, j'aimerais bien, mais hélas c'est une donnée fixe, non modifiable ! si tu vois ce que je veux dire...
Et pour toi je te souhaite un rétablissement rapide... ainsi qu'à ton pc !
Donc voici la dernière version, qui grâce à toi ne nécessite plus de télécharger tous les ans le fichier des données,
puisque le calcul est fait en local.
Code:
' Heures de lever et coucher de soleil pour un jour donné
LABEL Lcs
DIM lat,long,b$,i,j,m,a
lat = 48.8534: long = 2.3488: ' *** latitude, longitude de Paris ***
BORDER_SMALL 0
i = WIDTH(0)-WIDTH_CLIENT(0): WIDTH 0,184+i
i = HEIGHT(0)-HEIGHT_CLIENT(0): HEIGHT 0,90+i
COLOR 0,220,255,255
LEFT 0,(SCREEN_X-WIDTH(0))/2: TOP 0,100
CAPTION 0,"LEVER / COUCHER  DU  SOLEIL": FONT_SIZE 0,12
ALPHA 1: LEFT 1,15: CAPTION 1," Jour    Mois  Année"
SPIN 2: TOP 2,TOP(1)+18: LEFT 2,LEFT(1): WIDTH 2,45: MIN 2,1: MAX 2,31
SPIN 3: TOP 3,TOP(2): LEFT 3,LEFT(2)+WIDTH(2)+5: WIDTH 3,45: MIN 3,1: MAX 3,12
SPIN 4: TOP 4,TOP(3): LEFT 4,LEFT(3)+WIDTH(3)+5: WIDTH 4,60: MIN 4,2021
        MAX 4,2050
ALPHA 6: TOP 6,TOP(2)+30: LEFT 6,8: CAPTION 6," Lever  Coucher  Durée"
EDIT 7: TOP 7,TOP(6)+18: LEFT 7,LEFT(6): WIDTH 7,50
EDIT 8: TOP 8,TOP(7): LEFT 8,LEFT(7)+WIDTH(7)+10: WIDTH 8,WIDTH(7)
EDIT 9: TOP 9,TOP(8): LEFT 9,LEFT(8)+WIDTH(8)+10: WIDTH 9,WIDTH(8)
FOR i = 7 TO 9: COLOR i,255,255,0: NEXT i
j = date_day : m = date_month : a = date_year
POSITION 2,j: POSITION 3,m: POSITION 4,a
FOR i = 2 TO 4: COLOR i,255,255,220: ON_CHANGE i,Lcs: NEXT i
GOSUB Lcs
END
' =============================================================================
Lcs:
  ' Lever, coucher, durée pour le jour sélectionné
  j = POSITION(2): m = POSITION(3): a = POSITION(4)
  Lever_Coucher(lat,long,j,m,a)
  b$ = CLIPBOARD_STRING_PASTE$
  TEXT 7,LEFT$(b$,5): TEXT 8,MID$(b$,7,5): TEXT 9,RIGHT$(b$,5)
RETURN
' =============================================================================
SUB Lever_Coucher(Latitude,Longitude,jour,mois,annee)
  ' *************** merci papydall ***************
  ' Heures des lever/coucher de soleil en heures locales pour la France
  ' jour, mois, annee sous xforme numérique
  ' Pour Paris: latitude = 48.8534, longitude = 2.3488 
  ' Rendues en chaîne dans le clipboard sous la forme h1:m1 h2:m2 h3:m3
  ' respectivement lever, coucher et durée
    if label("NeSeLevePas")  = 0 then label NeSeLevePas
    if label("NeSeCouchePas") = 0 then label NeSeCouchePas
    IF LABEL("Ete_Hiver") = 0 THEN LABEL Ete_Hiver
    dim_local k,jm,jl,e,ob
    dim_local tex$,res$
    dim_local dr,hr,ht,h,j,m,L,s,x,y,z,R,rx,ry,ET,DC,cs,ah,pm,hs,fh
    dim_local CalculSol$,hs$,pm$,lev$,couch$
    DIM_LOCAL h$,h1,m1,h2,m2,h3,m3,d,qj%,mm,a_h%,b_h%, s_h%
    ' tex$ = STR$(jour)+" / "+str$(mois)+" / "+str$(annee)+" :  "
' Fuseau horaire et coordonnées géographiques
    k = 0.0172024: jm = 308.67: jl = 21.55: e = 0.0167: ob = 0.4091
' Hauteur du soleil au lever et au coucher
    dr = PI/ 180 : hr = PI/ 12 : ht = (-40 / 60) : ht = ht * dr
    Latitude = Latitude * dr : Longitude = 0-Longitude * dr
' Date
    IF (mois < 3) then mois = mois + 12
' Heure TU du milieu de la journée
    h = 12 + (Longitude / hr)
' Nombre de jours écoulés depuis le 1 Mars O h TU
    J = int(30.61 * (mois + 1)) + jour + (h / 24) - 123
' Anomalie et longitude moyenne
    M = k * (J - jm) : L = k * (J - jl)
' Longitude vraie
    S = L + 2 * e * Sin(M) + 1.25 * e * e * Sin(2 * M)
' Coordonnées rectangulaires du soleil dans le repère équatorial
    X = Cos(S) : Y = Cos(ob) * Sin(S) : Z = Sin(ob) * Sin(S)
' Equation du temps et déclinaison
    R = L  : rx = Cos(R) * X + Sin(R) * Y : ry = 0-Sin(R) * X + Cos(R) * Y
    X = rx : Y  = ry : ET = atn(Y / X)    : DC = atn(Z / Sqr(1 - Z * Z))
' Angle horaire au lever et au coucher
  cs = (Sin(ht) - Sin(Latitude) * Sin(DC)) / Cos(Latitude) / Cos(DC)
  IF (cs > 1)  then CalculSol$ = "Ne se lève pas"  : goto NeSeLevePas
  IF (cs < -1) then CalculSol$ = "Ne se couche pas" : goto NeSeCouchePas
  IF (cs = 0)  then ah = PI / 2 : ELSE : ah = atn(Sqr(1 - cs * cs) / cs)
  IF (cs < 0)  then ah = ah + PI
' Lever du soleil
  pm = h + fh + (ET - ah) / hr
  IF (pm < 0) then pm = pm + 24
  IF (pm > 24) then pm = pm - 24
  hs = int(pm) : pm = int(60 * (pm - hs))
  hs$ = RIGHT$("0"+STR$(hs),2): pm$ = RIGHT$("0"+STR$(pm),2)
NeSeLevePas:
  IF CalculSol$ = "" then lev$ = hs$ + ":" + pm$ : ELSE : lev$ = "-----"
' Coucher du soleil
  pm = h + fh + (ET + ah) /hr
  IF pm > 24 then pm = Pm - 24
  IF pm < 0  then pm = pm + 24
  hs = int(pm) : pm = int(60 * (pm - hs))
  hs$ = str$(hs) : pm$ = str$(pm)
  IF len(str$(hs)) < 2 then hs$ = "0" + str$(hs)
  IF len(str$(Pm)) < 2 then pm$ = "0" + str$(pm)
NeSeCouchePas:
  IF CalculSol$ = "" then couch$ = hs$ + ":" + pm$ : ELSE : couch$  = "-----"
  h1 = VAL(LEFT$(lev$,2)): m1 = VAL(MID$(lev$,4,2)): ' h:m lever
  h2 = VAL(LEFT$(couch$,2)): m2 = VAL(MID$(couch$,4,2)): ' h:m coucher
  d = h2*60+m2-(h1*60+m1): h3 = INT(d/60): m3 = d-h3*60: ' h:m durée 
' Heures locales
  j = jour: m = mois: a = annee
  h1 = h1+1: h2 = h2+1: ' heure d'hiver (GMT+1)
  IF m > 3 AND m < 10 THEN h1 = h1+1: h2 = h2+1: ' heure d'été (GMT+2)
  IF m = 3
      GOSUB Ete_Hiver: IF j >= qj% THEN h1 = h1+1: h2 = h2+1
  ELSE
      IF m = 10
          GOSUB Ete_Hiver: IF j < qj% THEN h1 = h1+1: h2 = h2+1
      END_IF
  END_IF
  h$ = RIGHT$("0"+STR$(h1),2)+":"+RIGHT$("0"+STR$(m1),2)
  h$ = h$+" "+RIGHT$("0"+STR$(h2),2)+":"+RIGHT$("0"+STR$(m2),2)
  h$ = h$+" "+RIGHT$("0"+STR$(h3),2)+":"+RIGHT$("0"+STR$(m3),2)
  CLIPBOARD_STRING_COPY h$: EXIT_SUB
Ete_Hiver:
  mm = m-2
  s_h% = INT(a/100): a_h% = a - s_h%*100
  b_h% = INT(2.6*mm - .19) + 31 + a_h%+INT(a_h%/4)+INT(s_h%/4)-s_h%*2
  qj% = 31-INT((b_h%/7-INT(b_h%/7))*7+.1)
RETURN 
END_SUB
' =============================================================================
Revenir en haut Aller en bas
papydall

papydall


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

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptySam 17 Avr 2021 - 17:39

JL35 a écrit:
Oh oh ! il va falloir que je pense à couper ma caméra, puisque tu as bien vu la grimace que j'ai fait ! ou que j’ai faite ?

Passons maintenant à plus sérieux.
Tu donnes 31 comme  MAX pour SPIN 2 (nombre de jours pour le moi).
De cette façon, on peut (le programme le permet) calculer le lever/coucher du soleil pour le 31 février 2021 par exemple !
Pour blinder le programme contre ces failles (tout le monde n’est pas rationnel ! Papydall est l'exemple type  tongue ), j’ai modifié le code comme ceci :

Code:

rem ============================================================================
rem       Calcul du lever et du coucher du Soleil pour une date donnée
rem                Par JL35 et Papydall
rem ============================================================================
LABEL Lcs
DIM lat,long,b$,i,j,m,a
lat = 48.8534: long = 2.3488: ' *** latitude, longitude de Paris ***
BORDER_SMALL 0
i = WIDTH(0)-WIDTH_CLIENT(0): WIDTH 0,184+i
i = HEIGHT(0)-HEIGHT_CLIENT(0): HEIGHT 0,90+i
COLOR 0,220,255,255
LEFT 0,(SCREEN_X-WIDTH(0))/2: TOP 0,100
CAPTION 0,"LEVER / COUCHER  DU  SOLEIL": FONT_SIZE 0,12
ALPHA 1: LEFT 1,15: CAPTION 1," Jour    Mois  Année"
SPIN 2: TOP 2,TOP(1)+18: LEFT 2,LEFT(1): WIDTH 2,45: MIN 2,1: MAX 2,31
SPIN 3: TOP 3,TOP(2): LEFT 3,LEFT(2)+WIDTH(2)+5: WIDTH 3,45: MIN 3,1: MAX 3,12
SPIN 4: TOP 4,TOP(3): LEFT 4,LEFT(3)+WIDTH(3)+5: WIDTH 4,60: MIN 4,2021
        MAX 4,2050
ALPHA 6: TOP 6,TOP(2)+30: CAPTION 6," Lever  Coucher  Durée"
EDIT 7: TOP 7,TOP(6)+18: WIDTH 7,50
EDIT 8: TOP 8,TOP(7): LEFT 8,LEFT(7)+WIDTH(7)+5: WIDTH 8,WIDTH(7)
EDIT 9: TOP 9,TOP(8): LEFT 9,LEFT(8)+WIDTH(8)+5: WIDTH 9,72
FOR i = 7 TO 9: COLOR i,255,255,0: NEXT i
j = date_day : m = date_month : a = date_year
POSITION 2,j: POSITION 3,m: POSITION 4,a
FOR i = 2 TO 4: COLOR i,255,255,220: ON_CHANGE i,Lcs: NEXT i
' GOSUB Lcs
' ------------------ Papydall --------------------------------------------------
j = POSITION(2): m = POSITION(3): a = POSITION(4)
Lever_Coucher(lat,long,j,m,a)
b$ = CLIPBOARD_STRING_PASTE$
TEXT 7,LEFT$(b$,5): TEXT 8,MID$(b$,7,5): TEXT 9,RIGHT$(b$,5)
' ------------------ Fin -------------------------------------------------------
END
' =============================================================================
Lcs:
  ' Lever, coucher, durée pour le jour sélectionné
  j = POSITION(2): m = POSITION(3): a = POSITION(4)
  ' ---------------------------- Papydall --------------------------------------
  select m
      case 1 : max 2,31
      case 2 : if IsBissextile(a) = 1
                  max 2,29  : position 2,29
               else
                  max 2,28  : position 2,28
               end_if
      case  3 : max 2,31    : position 2,31
      case  4 : max 2,30    : position 2,30
      case  5 : max 2,31    : position 2,31
      case  6 : max 2,30    : position 2,30
      case  7 : max 2,31    : position 2,31
      case  8 : max 2,31    : position 2,31
      case  9 : max 2,30    : position 2,30
      case 10 : max 2,31    : position 2,31
      case 11 : max 2,30    : position 2,30
      case 12 : max 2,31    : position 2,31
  end_select
  ' ---------------------------- Fin -------------------------------------------
  Lever_Coucher(lat,long,j,m,a)
  b$ = CLIPBOARD_STRING_PASTE$
  TEXT 7,LEFT$(b$,5): TEXT 8,MID$(b$,7,5): TEXT 9,RIGHT$(b$,5)
RETURN
' =============================================================================
SUB Lever_Coucher(Latitude,Longitude,jour,mois,annee)
  ' *************** merci papydall ***************
  ' Heures des lever/coucher de soleil en heures locales pour la France
  ' jour, mois, annee sous xforme numérique
  ' Pour Paris: latitude = 48.8534, longitude = 2.3488  
  ' Rendues en chaîne dans le clipboard sous la forme h1:m1 h2:m2 h3:m3
  ' respectivement lever, coucher et durée
    if label("NeSeLevePas")   = 0 then label NeSeLevePas
    if label("NeSeCouchePas") = 0 then label NeSeCouchePas
    IF LABEL("Ete_Hiver") = 0 THEN LABEL Ete_Hiver
    dim_local k,jm,jl,e,ob
    dim_local tex$,res$
    dim_local dr,hr,ht,h,j,m,L,s,x,y,z,R,rx,ry,ET,DC,cs,ah,pm,hs,fh
    dim_local CalculSol$,hs$,pm$,lev$,couch$
    DIM_LOCAL h$,h1,m1,h2,m2,h3,m3,d,qj%,mm,a_h%,b_h%, s_h%
    ' tex$ = STR$(jour)+" / "+str$(mois)+" / "+str$(annee)+" :  "
' Fuseau horaire et coordonnées géographiques
    k = 0.0172024: jm = 308.67: jl = 21.55: e = 0.0167: ob = 0.4091
' Hauteur du soleil au lever et au coucher
    dr = PI/ 180 : hr = PI/ 12 : ht = (-40 / 60) : ht = ht * dr
    Latitude = Latitude * dr : Longitude = 0-Longitude * dr
' Date
    IF (mois < 3) then mois = mois + 12
' Heure TU du milieu de la journée
    h = 12 + (Longitude / hr)
' Nombre de jours écoulés depuis le 1 Mars O h TU
    J = int(30.61 * (mois + 1)) + jour + (h / 24) - 123
' Anomalie et longitude moyenne
    M = k * (J - jm) : L = k * (J - jl)
' Longitude vraie
    S = L + 2 * e * Sin(M) + 1.25 * e * e * Sin(2 * M)
' Coordonnées rectangulaires du soleil dans le repère équatorial
    X = Cos(S) : Y = Cos(ob) * Sin(S) : Z = Sin(ob) * Sin(S)
' Equation du temps et déclinaison
    R = L  : rx = Cos(R) * X + Sin(R) * Y : ry = 0-Sin(R) * X + Cos(R) * Y
    X = rx : Y  = ry : ET = atn(Y / X)    : DC = atn(Z / Sqr(1 - Z * Z))
' Angle horaire au lever et au coucher
  cs = (Sin(ht) - Sin(Latitude) * Sin(DC)) / Cos(Latitude) / Cos(DC)
  IF (cs > 1)  then CalculSol$ = "Ne se lève pas"   : goto NeSeLevePas
  IF (cs < -1) then CalculSol$ = "Ne se couche pas" : goto NeSeCouchePas
  IF (cs = 0)  then ah = PI / 2 : ELSE : ah = atn(Sqr(1 - cs * cs) / cs)
  IF (cs < 0)  then ah = ah + PI
' Lever du soleil
  pm = h + fh + (ET - ah) / hr
  IF (pm < 0) then pm = pm + 24
  IF (pm > 24) then pm = pm - 24
  hs = int(pm) : pm = int(60 * (pm - hs))
  hs$ = RIGHT$("0"+STR$(hs),2): pm$ = RIGHT$("0"+STR$(pm),2)
NeSeLevePas:
  IF CalculSol$ = "" then lev$ = hs$ + ":" + pm$ : ELSE : lev$ = "-----"
' Coucher du soleil
  pm = h + fh + (ET + ah) /hr
  IF pm > 24 then pm = Pm - 24
  IF pm < 0  then pm = pm + 24
  hs = int(pm) : pm = int(60 * (pm - hs))
  hs$ = str$(hs) : pm$ = str$(pm)
  IF len(str$(hs)) < 2 then hs$ = "0" + str$(hs)
  IF len(str$(Pm)) < 2 then pm$ = "0" + str$(pm)
NeSeCouchePas:
  IF CalculSol$ = "" then couch$ = hs$ + ":" + pm$ : ELSE : couch$  = "-----"
  h1 = VAL(LEFT$(lev$,2)): m1 = VAL(MID$(lev$,4,2)): ' h:m lever
  h2 = VAL(LEFT$(couch$,2)): m2 = VAL(MID$(couch$,4,2)): ' h:m coucher
  d = h2*60+m2-(h1*60+m1): h3 = INT(d/60): m3 = d-h3*60: ' h:m durée  
' Heures locales
  j = jour: m = mois: a = annee
  h1 = h1+1: h2 = h2+1: ' heure d'hiver (GMT+1)
  IF m > 3 AND m < 10 THEN h1 = h1+1: h2 = h2+1: ' heure d'été (GMT+2)
  IF m = 3
      GOSUB Ete_Hiver: IF j >= qj% THEN h1 = h1+1: h2 = h2+1
  ELSE
      IF m = 10
          GOSUB Ete_Hiver: IF j < qj% THEN h1 = h1+1: h2 = h2+1
      END_IF
  END_IF
  h$ = RIGHT$("0"+STR$(h1),2)+":"+RIGHT$("0"+STR$(m1),2)
  h$ = h$+" "+RIGHT$("0"+STR$(h2),2)+":"+RIGHT$("0"+STR$(m2),2)
  h$ = h$+" "+RIGHT$("0"+STR$(h3),2)+":"+RIGHT$("0"+STR$(m3),2)
  CLIPBOARD_STRING_COPY h$: EXIT_SUB
Ete_Hiver:
  mm = m-2
  s_h% = INT(a/100): a_h% = a - s_h%*100
  b_h% = INT(2.6*mm - .19) + 31 + a_h%+INT(a_h%/4)+INT(s_h%/4)-s_h%*2
  qj% = 31-INT((b_h%/7-INT(b_h%/7))*7+.1)
RETURN  
END_SUB
rem ============================================================================
' Papydall
' Retourne 1 si l'année est bissextile, 0 sinon
FNC IsBissextile(annee)
    if (mod(annee,4) = 0) and ((mod(annee,100) > 0) or (mod(annee,400) = 0))
       result 1
    else
       result 0
    end_if
END_FNC
rem ============================================================================

C’est à toi de voir et d’apporter ton grain de sel.

A+
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


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

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptySam 17 Avr 2021 - 18:18

Bonjour à tous et tout particulièrement à Papydall !

@Papydall
Je suis content de te revoir sur le forum ! A peine revenu que tu cartonnes déjà avec un super algorithme de calcul solaire. Bravo ! cheers
Bien vu pour le 31 février !

Bravo aussi à JL35 pour l’adaptation dans son source !  cheers

Bonne continuation !
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2709
Date d'inscription : 13/09/2009

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptySam 17 Avr 2021 - 19:13

Ah !
Papydall II, le retour !
(en avant première) Laughing Laughing Laughing
Bonjour et re-bienvenue, papydall !

Et bravo à toi aussi, JL35 !
Connaître les levers et couchers de soleil
à la façon d'un calendrier permanent,
ça peut toujours être utile !
(tout au moins le coucher,
parce que pour ce qui est du lever,
je dors, à cette heure-là... Sleep )
lol!
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptySam 17 Avr 2021 - 20:13

Merci les amis pour les commentaires, et évidemment aussi à papydall pour cette vérification des jours du mois.
J'y avais bien pensé mais bon... la flemme...Je vais en profiter !
Et mon grain de sel c'est d'approuver entièrement ta correction.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptyDim 18 Avr 2021 - 19:14

J'ai modifié ton code ci-dessus papydall, si on change le jour ça passait systématiquement à 30...

Code:
rem ============================================================================
rem      Calcul du lever et du coucher du Soleil pour une date donnée
rem                Par JL35 et Papydall
rem ============================================================================
LABEL Lcs
DIM lat,long,b$,i,j,m,a,lm(12),bi
lm(1)=31: lm(2)=28: lm(3)=31: lm(4)=30: lm(5)=31: lm(6)=30
lm(7)=31: lm(8)=31: lm(9)=30: lm(10)=31: lm(11)=30: lm(12)=31
lat = 48.8534: long = 2.3488: ' *** latitude, longitude de Paris ***
BORDER_SMALL 0
i = WIDTH(0)-WIDTH_CLIENT(0): WIDTH 0,184+i
i = HEIGHT(0)-HEIGHT_CLIENT(0): HEIGHT 0,90+i
COLOR 0,220,255,255
LEFT 0,(SCREEN_X-WIDTH(0))/2: TOP 0,100
CAPTION 0,"LEVER / COUCHER  DU  SOLEIL": FONT_SIZE 0,12
ALPHA 1: LEFT 1,15: CAPTION 1," Jour    Mois  Année"
SPIN 2: TOP 2,TOP(1)+18: LEFT 2,LEFT(1): WIDTH 2,45: MIN 2,1: MAX 2,31
SPIN 3: TOP 3,TOP(2): LEFT 3,LEFT(2)+WIDTH(2)+5: WIDTH 3,45: MIN 3,1: MAX 3,12
SPIN 4: TOP 4,TOP(3): LEFT 4,LEFT(3)+WIDTH(3)+5: WIDTH 4,60: MIN 4,2021
        MAX 4,2050: ' arbitraire
ALPHA 6: TOP 6,TOP(2)+30: LEFT 6,8: CAPTION 6," Lever  Coucher  Durée"
EDIT 7: TOP 7,TOP(6)+18: LEFT 7,LEFT(6): WIDTH 7,50
EDIT 8: TOP 8,TOP(7): LEFT 8,LEFT(7)+WIDTH(7)+10: WIDTH 8,WIDTH(7)
EDIT 9: TOP 9,TOP(8): LEFT 9,LEFT(8)+WIDTH(8)+10: WIDTH 9,WIDTH(8)
FOR i = 7 TO 9: COLOR i,255,255,0: NEXT i
j = DATE_DAY : m = DATE_MONTH : a = DATE_YEAR
POSITION 2,j: POSITION 3,m: POSITION 4,a
FOR i = 2 TO 4: COLOR i,255,255,220: ON_CHANGE i,Lcs: NEXT i
GOSUB Lcs
END
' ============================================================================= 
Lcs:
  ' Lever, coucher, durée pour le jour sélectionné
  a = POSITION(4): lm(2) = 28
  IF (MOD(a,4) = 0) AND ((MOD(a,100) > 0) OR (MOD(a,400) = 0)) THEN lm(2) = 29 
  j = POSITION(2): m = POSITION(3): a = POSITION(4)
  MAX 2,lm(m)
  b$ = Lever_Coucher$(lat,long,j,m,a)
  TEXT 7,LEFT$(b$,5): TEXT 8,MID$(b$,7,5): TEXT 9,RIGHT$(b$,5)
RETURN
' =============================================================================
FNC Lever_Coucher$(Latitude,Longitude,jour,mois,annee)
  ' *************** merci papydall ***************
  ' Heures des lever/coucher de soleil en heures locales pour la France
  ' jour, mois, annee sous forme numérique
  ' Pour Paris: latitude = 48.8534, longitude = 2.3488 
  ' Rendues en chaîne sous la forme h1:m1 h2:m2 h3:m3
  ' respectivement lever, coucher et durée
    IF LABEL("NeSeLevePas")  = 0 THEN LABEL NeSeLevePas
    IF LABEL("NeSeCouchePas") = 0 THEN LABEL NeSeCouchePas
    IF LABEL("Ete_Hiver") = 0 THEN LABEL Ete_Hiver
    DIM_LOCAL k,jm,jl,e,ob,tex$
    DIM_LOCAL dr,hr,ht,h,j,m,a,L,s,x,y,z,R,rx,ry,ET,DC,cs,ah,pm,hs,fh
    DIM_LOCAL CalculSol$,hs$,pm$,lev$,couch$
    DIM_LOCAL h$,h1,m1,h2,m2,h3,m3,d,qj%,mm,a_h%,b_h%,s_h%
  ' Fuseau horaire et coordonnées géographiques
    k = 0.0172024: jm = 308.67: jl = 21.55: e = 0.0167: ob = 0.4091
  ' Hauteur du soleil au lever et au coucher
    dr = PI/ 180 : hr = PI/ 12 : ht = (-40 / 60) : ht = ht * dr
    Latitude = Latitude * dr : Longitude = 0-Longitude * dr
  ' Date
    IF (mois < 3) then mois = mois + 12
  ' Heure TU du milieu de la journée
    h = 12 + (Longitude / hr)
  ' Nombre de jours écoulés depuis le 1 Mars O h TU
    J = int(30.61 * (mois + 1)) + jour + (h / 24) - 123
  ' Anomalie et longitude moyenne
    M = k * (J - jm) : L = k * (J - jl)
  ' Longitude vraie
    S = L + 2 * e * Sin(M) + 1.25 * e * e * Sin(2 * M)
  ' Coordonnées rectangulaires du soleil dans le repère équatorial
    X = Cos(S) : Y = Cos(ob) * Sin(S) : Z = Sin(ob) * Sin(S)
  ' Equation du temps et déclinaison
    R = L  : rx = Cos(R) * X + Sin(R) * Y : ry = 0-Sin(R) * X + Cos(R) * Y
    X = rx : Y  = ry : ET = atn(Y / X)    : DC = atn(Z / Sqr(1 - Z * Z))
  ' Angle horaire au lever et au coucher
  cs = (Sin(ht) - Sin(Latitude) * Sin(DC)) / Cos(Latitude) / Cos(DC)
  IF (cs > 1)  then CalculSol$ = "Ne se lève pas"  : goto NeSeLevePas
  IF (cs < -1) then CalculSol$ = "Ne se couche pas" : goto NeSeCouchePas
  IF (cs = 0)  then ah = PI / 2 : ELSE : ah = atn(Sqr(1 - cs * cs) / cs)
  IF (cs < 0)  then ah = ah + PI
  ' Lever du soleil
  pm = h + fh + (ET - ah) / hr
  IF (pm < 0) then pm = pm + 24
  IF (pm > 24) then pm = pm - 24
  hs = int(pm) : pm = int(60 * (pm - hs))
  hs$ = RIGHT$("0"+STR$(hs),2): pm$ = RIGHT$("0"+STR$(pm),2)
NeSeLevePas:
  IF CalculSol$ = "" then lev$ = hs$ + ":" + pm$ : ELSE : lev$ = "-----"
  ' Coucher du soleil
  pm = h + fh + (ET + ah) /hr
  IF pm > 24 then pm = Pm - 24
  IF pm < 0  then pm = pm + 24
  hs = int(pm) : pm = int(60 * (pm - hs))
  hs$ = str$(hs) : pm$ = str$(pm)
  IF len(str$(hs)) < 2 then hs$ = "0" + str$(hs)
  IF len(str$(Pm)) < 2 then pm$ = "0" + str$(pm)
NeSeCouchePas:
  IF CalculSol$ = "" THEN couch$ = hs$ + ":" + pm$ : ELSE : couch$  = "-----"
  h1 = VAL(LEFT$(lev$,2)): m1 = VAL(MID$(lev$,4,2)): ' h:m lever
  h2 = VAL(LEFT$(couch$,2)): m2 = VAL(MID$(couch$,4,2)): ' h:m coucher
  d = h2*60+m2-(h1*60+m1): h3 = INT(d/60): m3 = d-h3*60: ' h:m durée 
  ' Heures locales
  j = jour: m = mois: a = annee
  h1 = h1+1: h2 = h2+1: ' heure d'hiver (GMT+1)
  IF m > 3 AND m < 10 THEN h1 = h1+1: h2 = h2+1: ' heure d'été (GMT+2)
  IF m = 3
      GOSUB Ete_Hiver: IF j >= qj% THEN h1 = h1+1: h2 = h2+1
  ELSE
      IF m = 10
          GOSUB Ete_Hiver: IF j < qj% THEN h1 = h1+1: h2 = h2+1
      END_IF
  END_IF
  h$ = RIGHT$("0"+STR$(h1),2)+":"+RIGHT$("0"+STR$(m1),2)
  h$ = h$+" "+RIGHT$("0"+STR$(h2),2)+":"+RIGHT$("0"+STR$(m2),2)
  h$ = h$+" "+RIGHT$("0"+STR$(h3),2)+":"+RIGHT$("0"+STR$(m3),2)
  RESULT h$: EXIT_FNC
Ete_Hiver:
  mm = m-2
  s_h% = INT(a/100): a_h% = a - s_h%*100
  b_h% = INT(2.6*mm - .19) + 31 + a_h%+INT(a_h%/4)+INT(s_h%/4)-s_h%*2
  qj% = 31-INT((b_h%/7-INT(b_h%/7))*7+.1)
RETURN 
END_FNC
rem ===========================================================================

Quelques bricoles qui me titillent un peu (mais ça ne m'empêche pas de dormir):
Dans la fonction, à quoi correspondent les étiquettes 'NeSeLevePas' et 'NeSeCouchePas' ???
à des régions où il n'y a pas de soleil, ou bien du soleil permanent ???
De plus, pour un jour donné d'un mois donné, les valeurs obtenues sont les mêmes quelle que soit l'année,
est-ce que ça ne devrait pas évoluer en passant par une année bissextile (un jour de plus) ?
Revenir en haut Aller en bas
Marc

Marc


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

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptyLun 19 Avr 2021 - 23:44

Merci JL35 et Papydall pour le partage !

Voici un aperçu du rendu sous Windows 10 :

Lever/coucher du soleil Jl35_b17
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptyMar 20 Avr 2021 - 10:33

Merci Marc pour l'image... ça manque un peu d'encadrement sous W10...
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil EmptyMar 20 Avr 2021 - 20:11

J'ai ajouté un petit bouton 'M' en haut à droite qui permet d'afficher les valeurs de tous les jours du mois demandé:
Code:
rem ============================================================================
rem       Calcul du lever et du coucher du Soleil pour une date donnée
rem                Par JL35 et Papydall
rem ============================================================================
LABEL Lcs,Mois
DIM lat,long,b$,i,j,m,a,lm(12),n$(12),bi
lm(1)=31: lm(2)=28: lm(3)=31: lm(4)=30: lm(5)=31: lm(6)=30
lm(7)=31: lm(8)=31: lm(9)=30: lm(10)=31: lm(11)=30: lm(12)=31
n$(1)="Janvier": n$(2)="Février": n$(3)="Mars": n$(4)="Avril": n$(5)="Mai"
n$(6)="Juin": n$(7)="Juillet": n$(8)="Août": n$(9)="Septembre": n$(10)="Octobre"
n$(11)="Novembre": n$(12)="Décembre"
lat = 48.8534: long = 2.3488: ' *** latitude, longitude de Paris ***
BORDER_SMALL 0
i = WIDTH(0)-WIDTH_CLIENT(0): WIDTH 0,190+i
i = HEIGHT(0)-HEIGHT_CLIENT(0): HEIGHT 0,100+i
COLOR 0,220,255,255
LEFT 0,(SCREEN_X-WIDTH(0))/2: TOP 0,50
CAPTION 0,"LEVER / COUCHER  DU  SOLEIL": FONT_SIZE 0,12
ALPHA 1: LEFT 1,5: CAPTION 1," Jour    Mois  Année"
SPIN 2: TOP 2,TOP(1)+18: LEFT 2,LEFT(1): WIDTH 2,45: MIN 2,1: MAX 2,31
SPIN 3: TOP 3,TOP(2): LEFT 3,LEFT(2)+WIDTH(2)+5: WIDTH 3,45: MIN 3,1: MAX 3,12
SPIN 4: TOP 4,TOP(3): LEFT 4,LEFT(3)+WIDTH(3)+5: WIDTH 4,60: MIN 4,2000
        MAX 4,2050: ' arbitraire
ALPHA 6: TOP 6,TOP(2)+30: LEFT 6,8: CAPTION 6," Lever  Coucher  Durée"
EDIT 7: TOP 7,TOP(6)+18: LEFT 7,LEFT(6): WIDTH 7,50
EDIT 8: TOP 8,TOP(7): LEFT 8,LEFT(7)+WIDTH(7)+10: WIDTH 8,WIDTH(7)
EDIT 9: TOP 9,TOP(8): LEFT 9,LEFT(8)+WIDTH(8)+10: WIDTH 9,WIDTH(8)
FOR i = 7 TO 9: COLOR i,255,255,0: NEXT i
BUTTON 10: TOP 10,0: WIDTH 10,20: LEFT 10,WIDTH_CLIENT(0)-WIDTH(10)
           HEIGHT 10,20: CAPTION 10,"M": FONT_BOLD 10: ON_CLICK 10,Mois

FORM 20: BORDER_SMALL 20: HIDE 20
TOP 20,TOP(0)+HEIGHT(0): LEFT 20,LEFT(0): WIDTH 20,WIDTH(0): HEIGHT 20,650
LIST 21: PARENT 21,20: FULL_SPACE 21: FONT_NAME 21,"Consolas": FONT_SIZE 21,12
         COLOR 21,255,255,200
'
j = DATE_DAY : m = DATE_MONTH : a = DATE_YEAR
POSITION 2,j: POSITION 3,m: POSITION 4,a
FOR i = 2 TO 4: COLOR i,255,255,220: ON_CHANGE i,Lcs: NEXT i
GOSUB Lcs
END
' =============================================================================  
Lcs:
  ' Lever, coucher, durée pour le jour sélectionné
  a = POSITION(4): lm(2) = 28
  IF (MOD(a,4) = 0) AND ((MOD(a,100) > 0) OR (MOD(a,400) = 0)) THEN lm(2) = 29  
  j = POSITION(2): m = POSITION(3): a = POSITION(4)
  MAX 2,lm(m)
  b$ = Lever_Coucher$(lat,long,j,m,a)
  TEXT 7,LEFT$(b$,5): TEXT 8,MID$(b$,7,5): TEXT 9,RIGHT$(b$,5)
RETURN
' =============================================================================
Mois:
  CLEAR 21
  CAPTION 20,"            -   "+UPPER$(n$(m))+" "+STR$(a)+"   -"
  ITEM_ADD 21,"   Lever Couch Durée"
  FOR i = 1 TO lm(m)
      b$ = Lever_Coucher$(lat,long,i,m,a)
      ITEM_ADD 21,""+RIGHT$(" "+STR$(i),2)+" "+b$
  NEXT i
  SHOW 20: TO_FOREGROUND 20
RETURN
' =============================================================================
FNC Lever_Coucher$(Latitude,Longitude,jour,mois,annee)
  ' *************** merci papydall ***************
  ' Heures des lever/coucher de soleil en heures locales pour la France
  ' jour, mois, annee sous forme numérique
  ' Pour Paris: latitude = 48.8534, longitude = 2.3488  
  ' Rendues en chaîne sous la forme h1:m1 h2:m2 h3:m3
  ' respectivement lever, coucher et durée
    IF LABEL("NeSeLevePas")   = 0 THEN LABEL NeSeLevePas
    IF LABEL("NeSeCouchePas") = 0 THEN LABEL NeSeCouchePas
    IF LABEL("Ete_Hiver") = 0 THEN LABEL Ete_Hiver
    DIM_LOCAL k,jm,jl,e,ob,tex$
    DIM_LOCAL dr,hr,ht,h,j,m,a,L,s,x,y,z,R,rx,ry,ET,DC,cs,ah,pm,hs,fh
    DIM_LOCAL CalculSol$,hs$,pm$,lev$,couch$
    DIM_LOCAL h$,h1,m1,h2,m2,h3,m3,d,qj%,mm,a_h%,b_h%,s_h%
  ' Fuseau horaire et coordonnées géographiques
    k = 0.0172024: jm = 308.67: jl = 21.55: e = 0.0167: ob = 0.4091
  ' Hauteur du soleil au lever et au coucher
    dr = PI/ 180 : hr = PI/ 12 : ht = (-40 / 60) : ht = ht * dr
    Latitude = Latitude * dr : Longitude = 0-Longitude * dr
  ' Date
    IF (mois < 3) then mois = mois + 12
  ' Heure TU du milieu de la journée
    h = 12 + (Longitude / hr)
  ' Nombre de jours écoulés depuis le 1 Mars O h TU
    J = int(30.61 * (mois + 1)) + jour + (h / 24) - 123
  ' Anomalie et longitude moyenne
    M = k * (J - jm) : L = k * (J - jl)
  ' Longitude vraie
    S = L + 2 * e * Sin(M) + 1.25 * e * e * Sin(2 * M)
  ' Coordonnées rectangulaires du soleil dans le repère équatorial
    X = Cos(S) : Y = Cos(ob) * Sin(S) : Z = Sin(ob) * Sin(S)
  ' Equation du temps et déclinaison
    R = L  : rx = Cos(R) * X + Sin(R) * Y : ry = 0-Sin(R) * X + Cos(R) * Y
    X = rx : Y  = ry : ET = atn(Y / X)    : DC = atn(Z / Sqr(1 - Z * Z))
  ' Angle horaire au lever et au coucher
  cs = (Sin(ht) - Sin(Latitude) * Sin(DC)) / Cos(Latitude) / Cos(DC)
  IF (cs > 1)  then CalculSol$ = "Ne se lève pas"   : goto NeSeLevePas
  IF (cs < -1) then CalculSol$ = "Ne se couche pas" : goto NeSeCouchePas
  IF (cs = 0)  then ah = PI / 2 : ELSE : ah = atn(Sqr(1 - cs * cs) / cs)
  IF (cs < 0)  then ah = ah + PI
  ' Lever du soleil
  pm = h + fh + (ET - ah) / hr
  IF (pm < 0) then pm = pm + 24
  IF (pm > 24) then pm = pm - 24
  hs = int(pm) : pm = int(60 * (pm - hs))
  hs$ = RIGHT$("0"+STR$(hs),2): pm$ = RIGHT$("0"+STR$(pm),2)
NeSeLevePas:
  IF CalculSol$ = "" then lev$ = hs$ + ":" + pm$ : ELSE : lev$ = "-----"
  ' Coucher du soleil
  pm = h + fh + (ET + ah) /hr
  IF pm > 24 then pm = Pm - 24
  IF pm < 0  then pm = pm + 24
  hs = int(pm) : pm = int(60 * (pm - hs))
  hs$ = str$(hs) : pm$ = str$(pm)
  IF len(str$(hs)) < 2 then hs$ = "0" + str$(hs)
  IF len(str$(Pm)) < 2 then pm$ = "0" + str$(pm)
NeSeCouchePas:
  IF CalculSol$ = "" THEN couch$ = hs$ + ":" + pm$ : ELSE : couch$  = "-----"
  h1 = VAL(LEFT$(lev$,2)): m1 = VAL(MID$(lev$,4,2)): ' h:m lever
  h2 = VAL(LEFT$(couch$,2)): m2 = VAL(MID$(couch$,4,2)): ' h:m coucher
  d = h2*60+m2-(h1*60+m1): h3 = INT(d/60): m3 = d-h3*60: ' h:m durée  
  ' Heures locales
  j = jour: m = mois: a = annee
  h1 = h1+1: h2 = h2+1: ' heure d'hiver (GMT+1)
  IF m > 3 AND m < 10 THEN h1 = h1+1: h2 = h2+1: ' heure d'été (GMT+2)
  IF m = 3
      GOSUB Ete_Hiver: IF j >= qj% THEN h1 = h1+1: h2 = h2+1
  ELSE
      IF m = 10
          GOSUB Ete_Hiver: IF j < qj% THEN h1 = h1+1: h2 = h2+1
      END_IF
  END_IF
  h$ = RIGHT$("0"+STR$(h1),2)+":"+RIGHT$("0"+STR$(m1),2)
  h$ = h$+" "+RIGHT$("0"+STR$(h2),2)+":"+RIGHT$("0"+STR$(m2),2)
  h$ = h$+" "+RIGHT$("0"+STR$(h3),2)+":"+RIGHT$("0"+STR$(m3),2)
  RESULT h$: EXIT_FNC
Ete_Hiver:
  mm = m-2
  s_h% = INT(a/100): a_h% = a - s_h%*100
  b_h% = INT(2.6*mm - .19) + 31 + a_h%+INT(a_h%/4)+INT(s_h%/4)-s_h%*2
  qj% = 31-INT((b_h%/7-INT(b_h%/7))*7+.1)
RETURN  
END_FNC
rem ===========================================================================
Lever/coucher du soleil Soleil11
J'ai aussi fait un générateur de calendrier annuel au format A4 paysage qui donne toutes les valeurs pour tous les jours
d'une année donnée, mais je ne sais pas si ça peut intéresser grand monde...
Lever/coucher du soleil Cal11

Allez, au diable l'avarice, voici le code, d'autant plus que l'essentiel du boulot est fait par la belle Fonction de papydall
(LeverCoucher$), le reste n'est que de l'habillage:
Code:
' Calendrier des lever/coucher/durées de soleil pour l'année courante
' Résultat: image A4 paysage dans fs$ (bmp) et dans le presse-papier
DIM fs$,wm,hm,wj,hj,x,y,i,mg,mh,lm(12),n$(12),j,m,a,b$,l$,c$,d$
fs$ = "C:\TEMP\Calsol.bmp": ' Image résultat, à ajuster
lm(1)=31: lm(2)=28: lm(3)=31: lm(4)=30: lm(5)=31: lm(6)=30: lm(7)=31
lm(8)=31: lm(9)=30: lm(10)=31: lm(11)=30: lm(12)=31
n$(1)="JANVIER": n$(2)="FÉVRIER": n$(3)="MARS": n$(4)="AVRIL": n$(5)="MAI"
n$(6)="JUIN": n$(7)="JUILLET": n$(8)="AOÜT": n$(9)="SEPTEMBRE": n$(10)="OCTOBRE"
n$(11)="NOVEMBRE": n$(12)="DÉCEMBRE"
WIDTH 0,1120: HEIGHT 0,850
PICTURE 1: WIDTH 1,1100: HEIGHT 1,779
  2D_TARGET_IS 1: PRINT_TARGET_IS 1: 2D_FILL_OFF
  FONT_NAME 1,"Consolas": FONT_SIZE 1,10
mg = 5: mh = 16: hm = 18: wm = 91: wj = 19: hj = 24
' Valeurs pour l'année, jour après jour
a = DATE_YEAR: lm(2) = 28
IF (MOD(a,4) = 0) AND ((MOD(a,100) > 0) OR (MOD(a,400) = 0)) THEN lm(2) = 29
FOR m = 1 TO 12
    x = mg+(m-1)*wm
    FOR j = 1 TO lm(m)
        b$ = Lever_Coucher$(48.8534,2.3488,j,m,a)
        l$ = LEFT$(b$,5): c$ = MID$(b$,7,5): d$ = RIGHT$(b$,5)
        y = mh+hm+(j-1)*hj
        FONT_SIZE 1,10: FONT_BOLD 1
        PRINT_LOCATE x+2,y+4: PRINT RIGHT$(" "+STR$(j),2): ' jour
        FONT_BOLD_OFF 1
        PRINT_LOCATE x+wj+2,y-1: PRINT l$: ' lever
        PRINT_LOCATE x+wj+2,y+11: PRINT c$: ' coucher
        FONT_SIZE 1,8
        PRINT_LOCATE x+wj+39,y+5: PRINT d$: ' durée
    NEXT j
NEXT m

y = mh
FOR i = 0 TO 12: ' lignes verticales
    x = mg+i*wm: 2D_LINE x,y,x,778: 2D_LINE x+wj,mh+hm,x+wj,778
NEXT i
FOR i = 1 TO 31: ' lignes horizontales
    y = mh+hm+(i-1)*hj: x = mg
    2D_LINE x,y,x+12*wm,y
NEXT i

FONT_SIZE 1,12: FONT_COLOR 1,0,0,255: FONT_BOLD 1
x = mg
FOR i = 1 TO 12
    b$ = n$(i): j = TEXT_WIDTH(b$,1)
    PRINT_LOCATE x+(wm-j)/2,16: PRINT n$(i): ' nom du mois
    x = x+wm
NEXT i
2D_LINE mg,mh+hm,mg+12*wm,mh+hm

b$ = "Levers, couchers de soleil et durée du jour (Paris) pour "+STR$(a)
FONT_COLOR 1,200,0,0
j = TEXT_WIDTH(b$,1): x = (WIDTH(1)-j)/2
PRINT_LOCATE x,-2: PRINT b$
2D_PEN_WIDTH 2: 2D_RECTANGLE mg,mh,mg+wm*12,mh+hm+31*hj+2
2D_LINE mg,mh+hm,mg+12*wm,mh+hm
FOR m = 1 TO 11: 2D_LINE mg+wm*m,mh,mg+wm*m,mh+hm+32*hj: NEXT m
IF DIR_EXISTS(FILE_EXTRACT_PATH$(fs$)) = 1 THEN FILE_SAVE 1,fs$
CLIPBOARD_COPY 1
END
' =============================================================================
FNC Lever_Coucher$(Latitude,Longitude,jour,mois,annee)
  ' *************** merci papydall ***************
  ' Heures des lever/coucher de soleil en heures locales pour la France
  ' jour, mois, annee sous forme numérique
  ' Pour Paris: latitude = 48.8534, longitude = 2.3488 
  ' Rendues en chaîne sous la forme h1:m1 h2:m2 h3:m3
  ' respectivement lever, coucher et durée
    IF LABEL("NeSeLevePas")  = 0 THEN LABEL NeSeLevePas
    IF LABEL("NeSeCouchePas") = 0 THEN LABEL NeSeCouchePas
    IF LABEL("Ete_Hiver") = 0 THEN LABEL Ete_Hiver
    DIM_LOCAL k,jm,jl,e,ob,tex$
    DIM_LOCAL dr,hr,ht,h,j,m,a,L,s,x,y,z,R,rx,ry,ET,DC,cs,ah,pm,hs,fh
    DIM_LOCAL CalculSol$,hs$,pm$,lev$,couch$
    DIM_LOCAL h$,h1,m1,h2,m2,h3,m3,d,qj%,mm,a_h%,b_h%,s_h%
  ' Fuseau horaire et coordonnées géographiques
    k = 0.0172024: jm = 308.67: jl = 21.55: e = 0.0167: ob = 0.4091
  ' Hauteur du soleil au lever et au coucher
    dr = PI/ 180 : hr = PI/ 12 : ht = (-40 / 60) : ht = ht * dr
    Latitude = Latitude * dr : Longitude = 0-Longitude * dr
  ' Date
    IF (mois < 3) then mois = mois + 12
  ' Heure TU du milieu de la journée
    h = 12 + (Longitude / hr)
  ' Nombre de jours écoulés depuis le 1 Mars O h TU
    J = int(30.61 * (mois + 1)) + jour + (h / 24) - 123
  ' Anomalie et longitude moyenne
    M = k * (J - jm) : L = k * (J - jl)
  ' Longitude vraie
    S = L + 2 * e * Sin(M) + 1.25 * e * e * Sin(2 * M)
  ' Coordonnées rectangulaires du soleil dans le repère équatorial
    X = Cos(S) : Y = Cos(ob) * Sin(S) : Z = Sin(ob) * Sin(S)
  ' Equation du temps et déclinaison
    R = L  : rx = Cos(R) * X + Sin(R) * Y : ry = 0-Sin(R) * X + Cos(R) * Y
    X = rx : Y  = ry : ET = atn(Y / X)    : DC = atn(Z / Sqr(1 - Z * Z))
  ' Angle horaire au lever et au coucher
  cs = (Sin(ht) - Sin(Latitude) * Sin(DC)) / Cos(Latitude) / Cos(DC)
  IF (cs > 1)  then CalculSol$ = "Ne se lève pas"  : goto NeSeLevePas
  IF (cs < -1) then CalculSol$ = "Ne se couche pas" : goto NeSeCouchePas
  IF (cs = 0)  then ah = PI / 2 : ELSE : ah = atn(Sqr(1 - cs * cs) / cs)
  IF (cs < 0)  then ah = ah + PI
  ' Lever du soleil
  pm = h + fh + (ET - ah) / hr
  IF (pm < 0) then pm = pm + 24
  IF (pm > 24) then pm = pm - 24
  hs = int(pm) : pm = int(60 * (pm - hs))
  hs$ = RIGHT$("0"+STR$(hs),2): pm$ = RIGHT$("0"+STR$(pm),2)
NeSeLevePas:
  IF CalculSol$ = "" then lev$ = hs$ + ":" + pm$ : ELSE : lev$ = "-----"
  ' Coucher du soleil
  pm = h + fh + (ET + ah) /hr
  IF pm > 24 then pm = Pm - 24
  IF pm < 0  then pm = pm + 24
  hs = int(pm) : pm = int(60 * (pm - hs))
  hs$ = str$(hs) : pm$ = str$(pm)
  IF len(str$(hs)) < 2 then hs$ = "0" + str$(hs)
  IF len(str$(Pm)) < 2 then pm$ = "0" + str$(pm)
NeSeCouchePas:
  IF CalculSol$ = "" THEN couch$ = hs$ + ":" + pm$ : ELSE : couch$  = "-----"
  h1 = VAL(LEFT$(lev$,2)): m1 = VAL(MID$(lev$,4,2)): ' h:m lever
  h2 = VAL(LEFT$(couch$,2)): m2 = VAL(MID$(couch$,4,2)): ' h:m coucher
  d = h2*60+m2-(h1*60+m1): h3 = INT(d/60): m3 = d-h3*60: ' h:m durée 
  ' Heures locales
  j = jour: m = mois: a = annee
  h1 = h1+1: h2 = h2+1: ' heure d'hiver (GMT+1)
  IF m > 3 AND m < 10 THEN h1 = h1+1: h2 = h2+1: ' heure d'été (GMT+2)
  IF m = 3
      GOSUB Ete_Hiver: IF j >= qj% THEN h1 = h1+1: h2 = h2+1
  ELSE
      IF m = 10
          GOSUB Ete_Hiver: IF j < qj% THEN h1 = h1+1: h2 = h2+1
      END_IF
  END_IF
  h$ = RIGHT$("0"+STR$(h1),2)+":"+RIGHT$("0"+STR$(m1),2)
  h$ = h$+" "+RIGHT$("0"+STR$(h2),2)+":"+RIGHT$("0"+STR$(m2),2)
  h$ = h$+" "+RIGHT$("0"+STR$(h3),2)+":"+RIGHT$("0"+STR$(m3),2)
  RESULT h$: EXIT_FNC
Ete_Hiver:
  mm = m-2
  s_h% = INT(a/100): a_h% = a - s_h%*100
  b_h% = INT(2.6*mm - .19) + 31 + a_h%+INT(a_h%/4)+INT(s_h%/4)-s_h%*2
  qj% = 31-INT((b_h%/7-INT(b_h%/7))*7+.1)
RETURN 
END_FNC
rem ===========================================================================
Revenir en haut Aller en bas
Contenu sponsorisé





Lever/coucher du soleil Empty
MessageSujet: Re: Lever/coucher du soleil   Lever/coucher du soleil Empty

Revenir en haut Aller en bas
 
Lever/coucher du soleil
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» LEVER ET COUCHER DU SOLEIL
» Heures de passage au méridien / lever / coucher du soleil
» Lever les restrictions sur la fonction String$

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: