Séparation d'une variable date 1902 en 19 et 02 comment ?

Séparation d'une variable date 1902 en 19 et 02 comment ? - C - Programmation

Marsh Posté le 28-04-2005 à 16:36:26    

Bonjour à tous, je ne sais pas comment faire pour quand
par exemple dans une date 1902 sépare en deux variables pour, ex : a = 19 et an = 02
C'est avec les caractères mais j'ai pas encore étudié ça en cours... Quelqu'un peut m'aider ? merci d'avance.

Reply

Marsh Posté le 28-04-2005 à 16:36:26   

Reply

Marsh Posté le 28-04-2005 à 16:38:39    

Si ta variable date est un entier, suffit de diviser par 100, et de garder la partie entière, pour obtenir le 19. Et pour le 02... je te laisse trouver :sol:

Reply

Marsh Posté le 28-04-2005 à 16:40:27    

de quel type vers quel type ? parce que ca tombe sous le sens
 
.


Message édité par skelter le 28-04-2005 à 16:41:09
Reply

Marsh Posté le 28-04-2005 à 18:34:42    

Je vous dit une partie de mon énoncé...
Si m >=3, on soustrait 2 à m sinon on ajoute 10 à m et on retranche 1 à a. On appelle s la centaine d'année et an l'année dans le siècle.
 
Exemple : Le 01 février 1902, j = 1, m = 1, a = 1902, donc puisque m < 3, on fait m = 12 et a = 1901. La centaine d'année vaut 19, l'année dans le siècle 01 et nb vaut -1. Donc, le reste de nb par la division par 7 vaut -1, qui est négatif et transformé en 6. Ceci correspond à Samedi.
 
Ca me donne mal à la tête ce genre de truc, tout est ok normalement niveau prog à part l'histoire de l'année et du siecle (var : an et s).
 
Je pige pas trop comment faire. Merci d'avance pour vos réponses

Reply

Marsh Posté le 28-04-2005 à 18:39:26    

a = date / 100; /* division euclidienne */
an = date - a * 100;
 
qu'est ce que tu pige pas ?

Reply

Marsh Posté le 28-04-2005 à 19:21:01    

Laissez je vais demander de l'aide à mon prof. Merci quand même.

Reply

Marsh Posté le 28-04-2005 à 19:23:34    

skelter a écrit :

a = date / 100; /* division euclidienne */
an = date - a * 100;


Meuh ?
 
an = date % 100;
 
Non ?


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 28-04-2005 à 19:39:19    

oui  :whistle: , le mieux c'est d'utiliser div alors

Reply

Marsh Posté le 30-04-2005 à 11:17:30    

on vous a dit dans le premier post que c'était une chaîne de caractères :o

Reply

Marsh Posté le 30-04-2005 à 11:25:29    

si c'est bien une chaîne et pas un entier, alors convertir la chaîne "1902" en entier 1902 avec la fonction atoi
http://www.mkssoftware.com/docs/man3/atoi.3.asp

Reply

Marsh Posté le 30-04-2005 à 11:25:29   

Reply

Marsh Posté le 30-04-2005 à 11:32:33    

blazkowicz a écrit :

si c'est bien une chaîne et pas un entier, alors convertir la chaîne "1902" en entier 1902 avec la fonction atoi
http://www.mkssoftware.com/docs/man3/atoi.3.asp


Bof... si c'est une chaîne de caractères avec 4 digits ben on copie les deux premiers dans une chaîne avec 2 digits et les deux autres dans une autre chaîne.
La simplicité de cette solution me laisse penser que le problème est plus compliqué que cela n'a été exposé ici  :hello:


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 30-04-2005 à 11:39:40    

j'ai pensé à copier dans deux chaînes mais c'est plus compliqué je pense :D
vu la suite de l'énoncé 19 et 02 sont utilisé pour un algo qui sort le jour de la semaine (jme souviens avoir fait ça en première année lol), il faut des entiers.
rien de compliqué à faire.
 
nDeXok, pour "transformer le -1 en 6" le modulo ça doit le faire (nb % 7)

Reply

Marsh Posté le 30-04-2005 à 12:29:53    

blazkowicz a écrit :

j'ai pensé à copier dans deux chaînes mais c'est plus compliqué je pense :D
vu la suite de l'énoncé 19 et 02 sont utilisé pour un algo qui sort le jour de la semaine (jme souviens avoir fait ça en première année lol), il faut des entiers.


 
 
sscanf, les formats, tu connais ?

Reply

Marsh Posté le 30-04-2005 à 12:35:57    

skelter a écrit :

sscanf, les formats, tu connais ?


 
oui mais j'y aurais jamais pensé  [:zytrafumay]  
(j'utilise plutôt  getchar, et notamment juste un getchar() tout seul pour faire des pauses parfois)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed