Aller au contenu
noftaly

Premier jour d'un mois

Messages recommandés

Salut à tous !

 

J'ai un peu besoin d'aide ^^

Je suis à la recherche d'un algorithme qui calcule le premier jour d'un mois (pour savoir par exemple si le 1 février 2017 était un lundi, mardi, mercredi etc...)

J'ai cherché, et j'ai principalement trouvé des algorithmes en C ou C++, mais je ne comprends pas totalement ce langage... J'ai du moins réussi a trouver cet algorithme :

[spoiler=Algorithme]1510948888-capture-d-ecran-2017-11-17-a-21-01-02.png

 

 

Que j'ai traduit en skript : [spoiler=Algorithme]

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

 

Mais malheureusement il ne fonctionne pas tout le temps... (et je n'ai pas vérifié si il fonctionnait avec les années bissextiles...)

 

Donc si quelqu'un pouvait me le corriger ou m'en donner un qui fonctionne, je le prend à coeur-joie !

 

Merci d'avance

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon du coup j'imagine que ce n'est pas possible en skript ^^

 

Dommage j'avais fait un skript de calendrier :) (enfin j'avais commencé)

Je vous mets le code, et si vous l'utilisez quelquepart, citez-moi svp, parce que j'ai mis beaucoup de temps (pas trop pour le script, mais surtout pour toute la recherche)

Ce n'est pas du tout le code finis, donc il y a plein de message de debug etc...

 

Si quelqu'un trouve quand même la solution pour le premier jour d'un mois, je suis bien évidemment toujours prenneur !

 

EDIT: ups, j'ai laissé les syntaxes de mon add-ons, donc il faudra que vous remplaciez les "bc" par "broadcast"

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a une erreur dans ta traduction : le a = .. ce n'est pas des crochets/parenthèses mais une fonction = fonction partie entière (E[x]).

E[x] = n

avec n<=x<n+1, n étant un entier relatif.

C'est pour ça que dans l'exemple il trouve que E[(14-8)/12) = 0

14-8 = 6 __ 6/12 = 0.5 la partie entière de 0.5 est bien 0.

Je ne sais pas si la fonction Partie entière est déjà programmée dans Skript, mais tu peux l'avoir en faisait:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

Et pour tous les autres calculs qui suivent c'est toujours la même chose : fonction E[x]

Voila voila :D

Partager ce message


Lien à poster
Partager sur d’autres sites

Je n'ai pas tout compris ^^ je suis en seconde, alors j'ai vu les fonctions, les fonctions dans les graphiques etc, etc, mais la je t'avoues que je ne comprends pas tout xD

 

EDIT: Du coup, par exemple, quand il y a marqué [y/4], ca veut dire que c'est

(année - ( (14 / mois) / 12) ) / 4

Partager ce message


Lien à poster
Partager sur d’autres sites
Je n'ai pas tout compris ^^ je suis en seconde, alors j'ai vu les fonctions, les fonctions dans les graphiques etc, etc, mais la je t'avoues que je ne comprends pas tout xD

Ok ok je vois, je vais t'expliquer ça plus simplement alors ahah !

En gros, dans tes calculs, tu as :

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Mais dans ton image qui explique les calculs à faire, ce n'est pas juste des crochets, mais une fonction : la fonction "Partie entière".

 

Cette fonction, elle renvoie l'entier le plus proche et inférieur au nombre que tu lui donnes.

Avec des exemples pour que ça soit plus explicite :

E[0.5] = 0 car 0 est la "partie entière" de 0.5

E[0.7] = 0

E[1.2] = 1

E[5] = 5

E[5.99999999] = 5

Pour les nombres négatifs c'est un peu plus chaud, mais t'en as pas besoin là.

 

Et pour trouver ce nombre entier, qu'on va appeler " n ", on le trouve comme ça :

n <= x < n+1

 

Et ça, en version Skript, tu l'as à peu près comme ça :

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

Et voilà, le {_n} remplace le {_base}

Et pour toutes les autres fractions en bas, c'est la même chose qu'il faut faire.

Si c'est toujours pas assez clair, hésites pas x) !

Partager ce message


Lien à poster
Partager sur d’autres sites
set {_n} to a random integer between {_x}-0.9999 and {_x}
Mais si j'ai bien compris, pour ca on peut pas faire

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

? c'est pas plus simple ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour bonjour,

 

Je viens de refaire ta fonction et tout semble marcher, je t'envois ça et tu me dis si cela te convient ;)

 

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

EDIT : Aïe, les années bissextiles ne sont pas prises en compte... Bon j'y retourne voir comment gérer ça :mad:

Partager ce message


Lien à poster
Partager sur d’autres sites
Bonjour bonjour,

 

Je viens de refaire ta fonction et tout semble marcher, je t'envois ça et tu me dis si cela te convient ;)

 

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

wow merci beaucoup ^^

Je ne sais pas si ca fonctionne (je ne peux pas tester actuellement), mais si ca fonctionne c'est super !

Partager ce message


Lien à poster
Partager sur d’autres sites
Mais si j'ai bien compris, pour ca on peut pas faire

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

? c'est pas plus simple ?

Ah peut être, je connais pas ce code ahah

Partager ce message


Lien à poster
Partager sur d’autres sites
Bonjour bonjour,

 

Je viens de refaire ta fonction et tout semble marcher, je t'envois ça et tu me dis si cela te convient ;)

 

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

EDIT : Aïe, les années bissextiles ne sont pas prises en compte... Bon j'y retourne voir comment gérer ça :mad:

Il y a pas un pb ? :

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Et sinon que fait le code ceil ?

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a pas un pb ? :

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Et sinon que fait le code ceil ?

C'est l'inverse de floor. Floor prend le nombre en dessous, par exemple floor(3,93) = 3 mais ceil(3,93) = 4

 

Et le :: text: est normal. Vu que c'est une fonction avec return, cet ajout va dire que le return est de type text

Partager ce message


Lien à poster
Partager sur d’autres sites
C'est l'inverse de floor. Floor prend le nombre en dessous, par exemple flormor(3,93) = 3 mais ceil(3,93) = 4

 

Et le :: text: est normal. Vu que c'est une fonction avec rerurn, cet ajout va dire que le rerurn est de type text

Ok bah la fonction partie entière que je te disais en gros c'est flormor, si tu veux utiliser l'algo que t'as envoyé en premier, tu peux essayer avec

Ah ok, c'est la première fois que je vois une fonction avec return, je me disais aussi que ça devait bien exister !

Partager ce message


Lien à poster
Partager sur d’autres sites

Sauf que c'est floor() ^^ pardon, c'est le correcteur automatique de mon tel qui faisait des siennes ^^

Et oui, les fonctions avec return sont très cool : tuto de @GauvainWizard : https://skript-mc.fr/forum/threads/7866/

 

d'ailleurs : floor comme sol (en bas), ceil comme plafond (en haut) :) petit moyen mnémotechnique

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

skutilities peut récupérer "day name"

send "%day name from date now%"

Ouais je l'avais vu, mais j'arrive pas à trouver la bonne syntaxe à mettre dans %now%. J'ai essayer tout les trucs possibles, avec des parsed etc mais je trouve pas... Ça fonctionne que quand on met now

Partager ce message


Lien à poster
Partager sur d’autres sites

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.