Le jour de la semaine


Zeller & #39 s Congruence est un algorithme qui calcule un jour de la semaine donné
l'année, le mois et le jour.

Contributeur: EARL DUNOVANT

{
EARL DUNOVANT

> Qui date de ce jour, Pour un mois donné.

Zeller & #39 s Congruence est un algorithme qui calcule un jour de la semaine donné
l'année, le mois et le jour. Créé en 1887(!). Jeff Duntemann de PC Techniques
la renommée mis en œuvre dans le TP dans le 11/90 question de Dr Dobbs Journal, Avec un
(115 min à gauche), (H)le pel, Plus? les principaux bidouille parce que TP & #39 s opérateur MOD renvoie le reste au lieu d'un
True mathématiques module. J'ai ajouté la Bidouille Alerte bannière que j'utilise dans mon
propre code.
}

la Fonction CalcDayOfWeek(Année, Mois, Jour : Integer) : Integer
Var
Siècle
Titulaire : Integer
begin
{ Premier test Pour détecter les conditions d'erreur sur les valeurs d'entrée: }
si (An < 0) ou (Mois < 1) ou (Mois > 12) ou (Jour < 1) ou (Jour > 31) puis
CalcDayOfWeek := -1 { Return -1 pour indiquer une erreur }
else
{ Faire de l'Zeller & #39 s Congruence pour le calcul de la Zeller lui-même }
{ décrit dans les 'Acta Mathematica' #7, Stockhold, 1887. }
begin
{ tout d'Abord nous séparer de l'année et le siècle des chiffres: }
Siècle := Année div 100
Année := An MOD 100
{ Ensuite, nous ajuster le mois telles que Mars reste mois #3, }
{ mais que janvier et février sont des mois #13 et #14, }
{ *, mais de l'année précédente*: }
si Mois < 3
begin
Inc(Mois, 12)
si An > 0, alors
Dec(Année 1) { L'année d'avant 2000 est }
else { 1999, pas 20-1... }
begin
Année := 99
Dec(Siècle)
fin
fin

{ Ici & #39 s Zeller & #39 s séminal de magie noire: }
Titulaire := Jour { Commencer Avec le jour du mois }
Titulaire := Support (((Mois 1) * 26) div 10) { Calc l'incrément }
Titulaire := Titulaire Année { Ajouter l'année }
Titulaire := Support (Année div 4) { Correct Pour les années bissextiles }
Titulaire := Titulaire (S div 4) { Correct Pour les années séculaires }
Titulaire := Titulaire Siècle Siècle { NE & #39 T SAVOIR POURQUOI IL l'a FAIT! }
{***********************quelque chose d'ALERTE!***************************}
Alors que Titulaire < 0 do { d'Obtenir des valeurs négatives en }
Inc(Titulaire, 7) { territoire positif avant }
{ en prenant le MOD... }
Titulaire := Titulaire MOD 7 { Diviser par 7, mais de garder la }
{ reste plutôt que de l' }
{ quotient }
{***********************QUELQUE CHOSE D'ALERTE!***************************}
{ Ici, on 'wrap', samedi, autour de la dernière journée: }
si le Titulaire = 0, alors
Titulaire := 7

{ Zeller gardé le dimanche = 1 origine de l'ordinateur saucisse préfèrent }
{ tout recommencer À 0, donc ici & #39 s une 20e siècle bidouille: }
Dec(Titulaire)

CalcDayOfWeek := Titulaire { Retourner le produit final! }
fin
fin









Le jour de la semaine


Le jour de la semaine : Plusieurs milliers de conseils pour vous faciliter la vie.


Zeller & #39 s Congruence est un algorithme qui calcule un jour de la semaine donne
l'annee, le mois et le jour.

Contributeur: EARL DUNOVANT

{
EARL DUNOVANT

> Qui date de ce jour, Pour un mois donne.

Zeller & #39 s Congruence est un algorithme qui calcule un jour de la semaine donne
l'annee, le mois et le jour. Cree en 1887(!). Jeff Duntemann de PC Techniques
la renommee mis en œuvre dans le TP dans le 11/90 question de Dr Dobbs Journal, Avec un
(115 min a gauche), (H)le pel, Plus? les principaux bidouille parce que TP & #39 s operateur MOD renvoie le reste au lieu d'un
True mathematiques module. J'ai ajoute la Bidouille Alerte banniere que j'utilise dans mon
propre code.
}

la Fonction CalcDayOfWeek(Annee, Mois, Jour : Integer) : Integer
Var
Siecle
Titulaire : Integer
begin
{ Premier test Pour detecter les conditions d'erreur sur les valeurs d'entree: }
si (An < 0) ou (Mois < 1) ou (Mois > 12) ou (Jour < 1) ou (Jour > 31) puis
CalcDayOfWeek := -1 { Return -1 pour indiquer une erreur }
else
{ Faire de l'Zeller & #39 s Congruence pour le calcul de la Zeller lui-meme }
{ decrit dans les 'Acta Mathematica' #7, Stockhold, 1887. }
begin
{ tout d'Abord nous separer de l'annee et le siecle des chiffres: }
Siecle := Annee div 100
Annee := An MOD 100
{ Ensuite, nous ajuster le mois telles que Mars reste mois #3, }
{ mais que janvier et fevrier sont des mois #13 et #14, }
{ *, mais de l'annee precedente*: }
si Mois < 3
begin
Inc(Mois, 12)
si An > 0, alors
Dec(Annee 1) { L'annee d'avant 2000 est }
else { 1999, pas 20-1... }
begin
Annee := 99
Dec(Siecle)
fin
fin

{ Ici & #39 s Zeller & #39 s seminal de magie noire: }
Titulaire := Jour { Commencer Avec le jour du mois }
Titulaire := Support (((Mois 1) * 26) div 10) { Calc l'increment }
Titulaire := Titulaire Annee { Ajouter l'annee }
Titulaire := Support (Annee div 4) { Correct Pour les annees bissextiles }
Titulaire := Titulaire (S div 4) { Correct Pour les annees seculaires }
Titulaire := Titulaire Siecle Siecle { NE & #39 T SAVOIR POURQUOI IL l'a FAIT! }
{***********************quelque chose d'ALERTE!***************************}
Alors que Titulaire < 0 do { d'Obtenir des valeurs negatives en }
Inc(Titulaire, 7) { territoire positif avant }
{ en prenant le MOD... }
Titulaire := Titulaire MOD 7 { Diviser par 7, mais de garder la }
{ reste plutot que de l' }
{ quotient }
{***********************QUELQUE CHOSE D'ALERTE!***************************}
{ Ici, on 'wrap', samedi, autour de la derniere journee: }
si le Titulaire = 0, alors
Titulaire := 7

{ Zeller garde le dimanche = 1 origine de l'ordinateur saucisse preferent }
{ tout recommencer A 0, donc ici & #39 s une 20e siecle bidouille: }
Dec(Titulaire)

CalcDayOfWeek := Titulaire { Retourner le produit final! }
fin
fin


Le jour de la semaine

Le jour de la semaine : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation