#include <iostream>

using namespace std;

bool validarFecha(int dia, int mes) {
  if (dia < 1 || dia > 31) {
    return false;
  } else if (mes < 1 || mes > 12) {
    return false;
  } else if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {
    return dia < 31 ;
  } else if (mes == 2) {
    return dia < 30;
  }
  return true;
}

string determinarSigno(int dia, int mes) {
  string signo;
  switch (mes) {
    case 1:
      dia <= 19 ? signo = "Capricornio" : signo = "Acuario";
      break;
    case 2:
      dia <= 18 ? signo = "Acuario" : signo = "Piscis";
      break;
    case 3:
      dia <= 20 ? signo = "Piscis" : signo = "Aries";
      break;
    case 4:
      dia <= 19 ? signo = "Aries" : signo = "Tauro";
      break;
    case 5:
      dia <= 20 ? signo = "Tauro" : signo = "Geminis";
      break;
    case 6:
      dia <= 20 ? signo = "Geminis" : signo = "Cancer";
      break;
    case 7:
      dia <= 22 ? signo = "Cancer" : signo = "Leo";
      break;
    case 8:
      dia <= 22 ? signo = "Leo" : signo = "Virgo";
      break;
    case 9:
      dia <= 22 ? signo = "Virgo" : signo = "Libra";
      break;
    case 10: 
      dia <= 22 ? signo = "libra" : signo = "Escorpion";
      break;
    case 11:
      dia <= 21 ? signo = "Escorpion" : signo = "Sagitario";
      break;
    case 12:
      dia <= 21 ? signo = "Sagitario" : signo = "Capricornio";
      break;
  }
  return signo;
}

int main() {
  int dia, mes;
  string signoZodiacal;
  char sep;

  cout << "Introduce tu fecha de nacimiento con formato dd/mm o dd-mm: ";
  cin >> dia >> sep >> mes;

  if (validarFecha(dia, mes)) {
    signoZodiacal = determinarSigno(dia, mes);
    cout << "Tu signo zodiacal es: " << signoZodiacal << endl;
  } else {
    cout << "Fecha invalida" << endl;
  }
}

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: