IdentifiantMot de passe
Loading...
Mot de passe oubli ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les rponses en temps rel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Afficher les annes du jour identique [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message prcdent Message prcdent   Message suivant Message suivant
  1. #1
    Membre confirm
    Femme Profil pro
    tudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Dtails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit : tudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Par dfaut Afficher les annes du jour identique
    Bonjour les dveloppeurs.

    Comment afficher les annes o le 17 juillet est tomb par un samedi

    Je m'explique par des exemples

    Je choisis une plage d'annes comprise entre 1900 et 2021

    Je tape le dbut d'une anne: 1900
    Je tape la fin d'une anne: 2021
    Je tape le jour: 17
    Je tape le mois: 7
    Je tape l'anne: 2021

    Le batch affiche le rsultat suivant:


    samedi 17 juillet 1909
    samedi 17 juillet 1915
    samedi 17 juillet 1920
    samedi 17 juillet 1926
    samedi 17 juillet 1937
    samedi 17 juillet 1943
    samedi 17 juillet 1948
    samedi 17 juillet 1954
    samedi 17 juillet 1965
    samedi 17 juillet 1971
    samedi 17 juillet 1976
    samedi 17 juillet 1982
    samedi 17 juillet 1993
    samedi 17 juillet 1999
    samedi 17 juillet 2004
    samedi 17 juillet 2010
    samedi 17 juillet 2021

    Cela m'aide aussi afficher les calendriers identiques

    Entrer l'anne de dbut: 1990
    Entrer l'anne de fin: 2021
    Entrer le jour: 1
    Entrer le mois: 1
    Entrer l'anne: 1990

    Le batch affiche les calendriers identiques o le 1er janvier tait un lundi

    lundi 1 janvier 1990
    lundi 1 janvier 1996 (anne bissextile car 1 jour de plus)
    lundi 1 janvier 2001
    lundi 1 janvier 2007
    lundi 1 janvier 2018

    Les calendriers identiques en jours sont: 1990 - 2001 - 2007 - 2018

    Et aussi les annes o le jour de naissance est tomb par un dimanche

    Voil et merci de bien vouloir m'aider.

  2. #2
    Membre mrite
    Homme Profil pro
    Dveloppeur .NET en devenir
    Inscrit en
    Aot 2017
    Messages
    549
    Dtails du profil
    Informations personnelles :
    Sexe : Homme
    ge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit : Dveloppeur .NET en devenir
    Secteur : High Tech - diteur de logiciels

    Informations forums :
    Inscription : Aot 2017
    Messages : 549
    Par dfaut
    Salut,

    Pour pouvoir faire de telles requtes, il faudrait une base de donnes, vu qu'il s'agit de batch on va se contenter de fichiers texte.

    Voil un script qui cre un calendrier (un fichier texte par anne, de 1900 2021) :

    Code batch : Slectionner tout - Visualiser dans une fentre part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    @echo off
    setlocal EnableExtensions EnableDelayedExpansion
     
    if not exist "%TMP%\Calendrier" (mkdir "%TMP%\Calendrier")
    del /q "%TMP%\Calendrier\*.txt"
     
    rem le premier jour de l'annee 1900 est un lundi
    set "jour=lundi"
     
    for /L %%A in (1900,1,2021) do (
     
    	cls & set "annee=%%A"
    	set "nbJours=28"
     
    	for /L %%E in (1804,4,2096) do if !annee! NEQ 1900 (if !annee! EQU %%E (set "nbJours=29"))
     
    	call :fonction janvier 31
    	call :fonction fevrier !nbJours!
    	call :fonction mars 31
    	call :fonction avril 30
    	call :fonction mai 31
    	call :fonction juin 30
    	call :fonction juillet 31
    	call :fonction aout 31
    	call :fonction septembre 30
    	call :fonction octobre 31
    	call :fonction novembre 30
    	call :fonction decembre 31
     
    )
     
    exit
     
    :fonction
     
    echo. & echo %1 !annee!
     
    for /L %%A in (1,1,%2) do (
     
    	set marqueur=0
    	echo !jour! %%A %1 !annee! >> %TMP%\Calendrier\!annee!.txt
     
    	if !jour!==dimanche (set "jour=lundi" & set marqueur=1)
    	if !jour!==samedi (set jour=dimanche)
    	if !jour!==vendredi (set jour=samedi)
    	if !jour!==jeudi (set jour=vendredi)
    	if !jour!==mercredi (set jour=jeudi)
    	if !jour!==mardi (set jour=mercredi)
    	if !jour!==lundi (if !marqueur! EQU 0 (set jour=mardi))
     
    )
     
    goto :eof

    Maintenant que la moiti du travail est faite, il ne te reste plus qu' crer des requtes batch, suivant ce que tu recherches.

  3. #3
    Expert confirm

    Homme Profil pro
    Responsable dploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Dtails du profil
    Informations personnelles :
    Sexe : Homme
    ge : 46
    Localisation : France, Seine Saint Denis (le de France)

    Informations professionnelles :
    Activit : Responsable dploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par dfaut
    Passe PowerShell si possible pour les gestions des dates c'est infiniment plus puissant.
    Si tu accepte on pourra regarder

  4. #4
    Membre confirm
    Femme Profil pro
    tudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Dtails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit : tudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Par dfaut Calendrier perptuel traduit en franais
    Bonsoir mes chers dveloppeurs.

    Merci pour vos rponses. Je pensais que cela tait plus simple vu que l'ordinateur gre les dates (jour/mois/anne)

    Voici un script qui affiche un calendrier suivant l'anne choisie:

    Je m'en sers assez souvent selon ce que je veux savoir. Je m'intresse beaucoup aux calendriers des diffrentes civilisations.

    Savez-vous qu'en 1582, on est pass du jeudi 4 octobre (calendrier julien) au vendredi 15 octobre (calendrier grgorien) ?

    Rf. https://fr.wikipedia.org/wiki/Passag...gr%C3%A9gorien


    Code : Slectionner tout - Visualiser dans une fentre part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    @ECHO OFF
    
    :: Xp batch for generating calendars
    :: Chances look good for win 2000 and above(untested)
    :: By Judago, August 2009
    
    IF "%~1"=="/?" (
        ECHO START "%~NX0" WITHOUT ARGUMENTS AND THEN ENTER THE YEAR.
        ECHO "%~NX0" WILL OPEN IN IT'S OWN WINDOW TO AVOID RESIZING
        ECHO AN EXISTING WINDOW.
        ECHO.
        ECHO A SCREEN RESOLUTION AND/OR FONT SIZE THAT CAN DISPLAY
        ECHO CMD WINDOWS OF 96 COLUMNS AND 39 LINES IS REQUIRED.
        ECHO SOME CONFIGURATIONS MAY USE SCROLL BARS TO ACHIEVE
        ECHO THIS.
        EXIT /B
    )
    
    :: The current codepage is stored in variable %CodePage%,
    :: then changed to 850 to facilitate box drawing characters.....
    
    FOR /F "tokens=*" %%A IN ('CHCP') DO FOR %%B IN (%%~A) DO SET CodePage=%%B
    CHCP 850 >NUL 2>&1
    
    :: The title can be used to falicitate custom window
    :: positioning via the properties menu of "calendars..."
    :: /max is used so as much content as possible is visable
    :: without moving the window. /max must be removed for
    :: custom window positing.....
    
    IF NOT "%~1 %~2"=="WINDOW SIZE" (
    	START "CALENDRIERS..." /MAX CMD /C "%~F0" WINDOW SIZE
    
    	REM Restore the original codepage before exiting.....
    
    	CHCP %CodePage% >NUL 2>&1
    	EXIT /B
    )
    MODE CON:COLS=96 LINES=39
    SETLOCAL ENABLEDELAYEDEXPANSION
    
    :loop
    FOR %%Z IN (jan feb mar apr may jun jul aug sep oct nov dec year day leap noleap length test) DO SET %%Z=
    SET /P year=Entrez l'anne pour afficher le calendrier, ou rien pour quitter, puis pressez entre:
    IF NOT DEFINED year (
    
    	REM Restore the original codepage before exiting.....
    
    	CHCP %CodePage% >NUL 2>&1
    	EXIT /B
    )
    
    ::Test that the input is only numbers...
    
    SET test=!year!
    FOR /l %%Z IN (0 1 9) DO IF DEFINED test SET "test=!test:%%Z=!"
    IF DEFINED test CLS&GOTO loop
    :zero
    IF NOT DEFINED year (
    	:error
    	cls
    	echo L'anne entre n'est pas accepte.
    	echo.
    	pause
    	CLS
    	GOTO loop
    )
    
    :: remove leading zeros, if any...
    
    IF "%year:~0,1%"=="0" SET year=%year:~1%&&GOTO zero
    
    :: The %processor_architecture% test is used to test
    :: limits of caculations, if the variable is undefined
    :: or unrecognised the test will fall through and complete
    :: anyway, if the limit is surpassed this way the results may
    :: not be valid. The tested number is ~80% of the limit of the
    :: os so that year + year / 4 yields a valid result.
    
    IF /I "!processor_architecture!"=="x86" (
    	IF !year! gtr 1717986917 GOTO :error
    ) else (
    	IF NOT "!processor_architecture:64=!"=="!processor_architecture!" (
    		IF !year! gtr 7378697629483820645 GOTO :error
    	)
    )
    
    :: Generate the first day of the year, 0=sun, 1=mon,...,6=sat
    :: A 365 day year ofsets by one day, so the next year will start
    :: the next day (i.e. 2009 starts on thr and 2010 starts on fri)
    :: an extra day must be added for every leapyear. Using modulo
    :: 7 on the total of offset days reviels the starting day of the
    :: year. one day must also be removed if the year is a leap year
    :: because the below will add one for it, the remainder for non
    :: leap years is not an issue because set /a only returns whole
    :: numbers.
    
    SET /A day=(year + year / 4) - (year / 100 - year / 400)
    SET /A leap=year %% 400
    SET /A noleap=year %% 100
    IF !leap! GTR 0 (
    	IF !noleap! NEQ 0 SET /A leap=year %% 4
    )
    IF %leap%==0 SET /A day-=1
    SET /A day%%=7
    
    :: For each year every month is padded to is starting offset
    :: with spaces, january has the original offset generated above.
    :: each additional offset is generated by adding the total days of
    :: the previous month then processing it by modulo 7.
    :: The days are stored in a varianle to display later, these variables
    :: are padded to 111 characters using spaces for display purposes.
    
    FOR %%U IN (jan feb mar apr may jun jul aug sep oct nov dec) DO (
    	FOR %%V IN (jan mar may jul aug oct dec) DO IF /I %%U==%%V SET length=31
    	FOR %%W IN (apr jun sep nov) DO IF /I %%U==%%W SET length=30
    	IF /I %%U==feb (
    		IF !leap!==0 (
    			SET length=29
    		) else (
    			SET length=28
    		)
    	)
    	FOR /l %%X IN (1 1 !day!) DO SET "%%U=!%%U!   "
    	FOR /l %%Y IN (1 1 !length!) DO (
    		IF %%Y lss 10 (
    			SET "%%U=!%%U!%%Y  "
    		) else (
    			SET "%%U=!%%U!%%Y "
    		)
    	)
    	FOR /l %%Z IN (!length! 1 54) DO IF "!%%U:~110!"=="" SET "%%U=!%%U! "
    	SET /A day=^(day + length^) %% 7
    )
    :test
    
    :: The results are displayed below using substrings of each month's
    variable.
    
    cls
    TITLE CALENDRIER DE L'ANNE %YEAR%
    echo. ͻ  ͻ  ͻ  ͻ
    echo.       JANVIER               FEVRIER                 MARS                 AVRIL        
    echo. ͹  ͹  ͹  ͹
    echo. Di Lu Ma Me Je Ve Sa  Di Lu Ma Me Je Ve Sa  Di Lu Ma Me Je Ve Sa  Di Lu Ma Me Je Ve Sa
    echo. ͹  ͹  ͹  ͹
    echo. %JAN:~0,20%  %FEB:~0,20%  %MAR:~0,20%  %APR:~0,20%
    echo. %JAN:~21,20%  %FEB:~21,20%  %MAR:~21,20%  %APR:~21,20%
    echo. %JAN:~42,20%  %FEB:~42,20%  %MAR:~42,20%  %APR:~42,20%
    echo. %JAN:~63,20%  %FEB:~63,20%  %MAR:~63,20%  %APR:~63,20%
    echo. %JAN:~84,20%  %FEB:~84,20%  %MAR:~84,20%  %APR:~84,20%
    echo. %JAN:~105%                %FEB:~105%                %MAR:~105%                %APR:~105%              
    echo. ͼ  ͼ  ͼ  ͼ
    echo. ͻ  ͻ  ͻ  ͻ
    echo.         MAI                   JUIN                 JUILLET                AOUT        
    echo. ͹  ͹  ͹  ͹
    echo. Di Lu Ma Me Je Ve Sa  Di Lu Ma Me Je Ve Sa  Di Lu Ma Me Je Ve Sa  Di Lu Ma Me Je Ve Sa
    echo. ͹  ͹  ͹  ͹
    echo. %MAY:~0,20%  %JUN:~0,20%  %JUL:~0,20%  %AUG:~0,20%
    echo. %MAY:~21,20%  %JUN:~21,20%  %JUL:~21,20%  %AUG:~21,20%
    echo. %MAY:~42,20%  %JUN:~42,20%  %JUL:~42,20%  %AUG:~42,20%
    echo. %MAY:~63,20%  %JUN:~63,20%  %JUL:~63,20%  %AUG:~63,20%
    echo. %MAY:~84,20%  %JUN:~84,20%  %JUL:~84,20%  %AUG:~84,20%
    echo. %MAY:~105%                %JUN:~105%                %JUL:~105%                %AUG:~105%              
    echo. ͼ  ͼ  ͼ  ͼ
    echo. ͻ  ͻ  ͻ  ͻ
    echo.      SEPTEMBRE              OCTOBRE               NOVEMBRE              DECEMBRE      
    echo. ͹  ͹  ͹  ͹
    echo. Di Lu Ma Me Je Ve Sa  Di Lu Ma Me Je Ve Sa  Di Lu Ma Me Je Ve Sa  Di Lu Ma Me Je Ve Sa
    echo. ͹  ͹  ͹  ͹
    echo. %SEP:~0,20%  %OCT:~0,20%  %NOV:~0,20%  %DEC:~0,20%
    echo. %SEP:~21,20%  %OCT:~21,20%  %NOV:~21,20%  %DEC:~21,20%
    echo. %SEP:~42,20%  %OCT:~42,20%  %NOV:~42,20%  %DEC:~42,20%
    echo. %SEP:~63,20%  %OCT:~63,20%  %NOV:~63,20%  %DEC:~63,20%
    echo. %SEP:~84,20%  %OCT:~84,20%  %NOV:~84,20%  %DEC:~84,20%
    echo. %SEP:~105%                %OCT:~105%                %NOV:~105%                %DEC:~105%              
    echo. ͼ  ͼ  ͼ  ͼ
    GOTO loop
    ::https://www.robvanderwoude.com/3rdpartybatchfiles.php
    ::https://www.robvanderwoude.com/3rdpartybatchfiles.php#Calendar

  5. #5
    Expert confirm

    Homme Profil pro
    Responsable dploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Dtails du profil
    Informations personnelles :
    Sexe : Homme
    ge : 46
    Localisation : France, Seine Saint Denis (le de France)

    Informations professionnelles :
    Activit : Responsable dploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par dfaut
    Non javoue que je ne savais pas

  6. #6
    Membre mrite
    Homme Profil pro
    Dveloppeur .NET en devenir
    Inscrit en
    Aot 2017
    Messages
    549
    Dtails du profil
    Informations personnelles :
    Sexe : Homme
    ge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit : Dveloppeur .NET en devenir
    Secteur : High Tech - diteur de logiciels

    Informations forums :
    Inscription : Aot 2017
    Messages : 549
    Par dfaut
    Je n'tais pas au courant non plus.

+ Rpondre la discussion
Cette discussion est rsolue.

Discussions similaires

  1. [Vxi3] Afficher les 30 derniers jours dans un graph
    Par Marshall06 dans le forum Deski
    Rponses: 4
    Dernier message: 23/03/2011, 17h16
  2. [ZF 1.10] Afficher les informations par jour, semaine et mois
    Par king_soft dans le forum Zend Framework
    Rponses: 1
    Dernier message: 27/12/2010, 13h45
  3. Requte qui affiche les rdv DU JOUR
    Par fanico11 dans le forum Requtes et SQL.
    Rponses: 6
    Dernier message: 24/04/2008, 17h22
  4. [Dates] Afficher les 7 derniers jours
    Par fabien14 dans le forum Langage
    Rponses: 7
    Dernier message: 12/05/2007, 01h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo