![]() |
Algoritmo!!!
Holas amigos:
Alguien conoce de algun algorito o funcion en C++Builder, que me sirva para saber si un No. de Carnet de Identidad es valido, al menos sus primeros 6 digitos. Salu2 Ledian. |
Supongo que te refieres al NIF, el cual, supongo que no debería ser muy problemático traspasarlo a C++
|
funcion CI
Amigos mios:
El carnet de Identidad consta de 11 digitos, y yo lo que quiero es hacer una funcion que me permita substraer los primeros 6 digitos (estos corresponde con la fecha de nacimiento) y de ahí separarlos de 2 en 2, por ejemplo: CI = 81042805227 8104028 = fecha de nacimiento 81 = año 04 = mes 28 = día y quiciera validar si esa fecha es correcta salu2 Ledian:confused: |
Hola,
Que llevas hecho? En que tienes almacenado ese carnet de identidad? (char *, AnsiString) Saludos |
Ci?
El carnet de identidad lo guardo en una variable de tipo String.
Y hasta ahora lo que se me ocurre es ir tomando de 2 en dos lo 6 primeros caracteres, la complicacion de todo esto es como sabes si es una fecha valida. Digamos por ejemplo cuando un mes trae 30, 31, 28 o 29. Salu2 Ledian:mad: |
Hola,
Pues todos los meses son faciles de checar menos Febrero, por eso de los años bisiestos, los meses siempre tienen este numero de dias: Enero 31 Febrero 28 o 29 Marzo 31 Abril 30 Mayo 31 Junio 30 Julio 31 Agosto 31 Septiembre 30 Octubre 31 Noviembre 30 Dicienmbro 31 De la formula es apara clauyclar cuando un año es bisiesto ahorita no al tengo, al rato la busoc bien, solo me acuerdo algo como que si un año es multiplo de 4 pero no de 400 es bisiesto )al rato lo busco bien=. Para saber si es multiplo, pues usas el operador modulo )o residuo de division entera= :% Se usa asi: supongamos que el numeor lo guardas en n, en tonces i: n%4==0 <---es multiplo de 4 n%4!=0 <---NO es multiplo de 4 Asi que para 400, pues queda asi: n%400==0 <---es multiplo de 400 n%400!=0 <---NO es multiplo de 400 Saludos |
Prueba con esta función:
Y por cierto, trata de dar títulos más descriptivos para tus mensajes. // Saludos |
Hola,
Basandome en lo que puso roman y en algo que viene en la ayuda de CBuilder, para CBuilder seria asi: Código:
void __fastcall TForm1::Button1Click(TObject *Sender) fecha="810227"; Saludos P.D. La linea Label1->Caption = DateToStr(dt); la puedes quitar. |
La franja horaria es GMT +2. Ahora son las 00:31:55. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi