¡Descubre el Secreto de la Edad en SQL Server! Calcula Edades en un Parpadeo

¿Te has preguntado alguna vez cómo calcular la edad de forma rápida y eficiente utilizando SQL Server? ¡No busques más! En este breve tutorial, te revelaremos un forma fácil para obtener la edad de tus datos con solo unos pocos pasos en SQL Server.

La clave para calcular la edad radica en la función DATEDIFF y algunos trucos astutos. Para empezar, necesitarás la fecha de nacimiento de tus usuarios o clientes. Luego, con un simple cálculo, podrás mostrar la edad en años de manera precisa.

Sin embargo, solo utilizando la función DateDiff tendríamos inconvenientes, solo resta los años no tiene en cuenta el mes y el día.

¿Cómo lo Solucionamos?

 El siguiente código utiliza la función DateDiff y me ha funcionado mucho

Select DATEDIFF(YEAR,Convert(datetime, '22/01/1980',103),GETDATE())-
			(CASE  WHEN DATEADD(YY,DATEDIFF(YEAR,Convert(datetime,'22/01/1980',103),GETDATE()),
					Convert(datetime,'22/01/1980',103))>GETDATE() THEN 1
				ELSE 0  End) as Edad

Pero existe este otro código, que me gusta y funciona de maravilla:

Select Floor((cast(convert(varchar(8),getdate(),112) as int)-
	Cast(convert(varchar(8),Convert(datetime,'22/01/1980',103),112) as int) ) / 10000) as Edad 

Para este último ejemplo; convertimos la fecha como una cadena pegada (22011980), esto lo restamos, luego dividimos entre 10000 y finalmente redondeamos con la función Sql floor.

Share:

¿Cómo Usar la Inteligencia Artificial para Ganar Dinero?

Cómo Usar la Inteligencia Artificial

 ¿Te has preguntado alguna vez cómo la inteligencia artificial (IA) puede convertirse en tu aliado para generar ingresos? La conjunción entre la innovación tecnológica y las oportunidades financieras está dando paso a un mundo donde la IA no solo revoluciona la forma en que vivimos y trabajamos, sino también en cómo podemos obtener ganancias. ¡Sigue leyendo para descubrir cómo utilizar esta tecnología para maximizar tus ingresos!

¿Qué es la Inteligencia Artificial y su Potencial en la Generación de Ingresos?

La inteligencia artificial se refiere a la capacidad de las máquinas para aprender, razonar y realizar tareas de manera autónoma, imitando la inteligencia humana. En el ámbito financiero, su aplicación va más allá de simplificar procesos: se convierte en una herramienta poderosa para aumentar la eficiencia y descubrir oportunidades de negocio.

Aplicaciones Prácticas para Ganar Dinero con Inteligencia Artificial

  1. Trading Algorítmico: Los algoritmos de IA pueden analizar datos financieros en tiempo real y ejecutar operaciones automáticamente. Esto permite identificar patrones y tendencias que podrían resultar en decisiones más acertadas en el mercado de valores, divisas o criptomonedas.
  2. Personalización y Marketing: La IA puede analizar el comportamiento de los usuarios para ofrecer contenido y productos personalizados, aumentando las conversiones y ventas. Herramientas de recomendación basadas en IA pueden optimizar estrategias de marketing y publicidad.
  3. Automatización de Procesos Empresariales: La implementación de IA en la automatización de tareas repetitivas libera tiempo para centrarse en actividades más estratégicas, aumentando la productividad y eficiencia operativa.

Pasos para Capitalizar la IA y Obtener Ingresos

  • Educación Continua: Mantente actualizado sobre las últimas tendencias y avances en IA y tecnología financiera. La capacitación constante te permite aprovechar al máximo las herramientas disponibles.
  • Identifica Oportunidades: Analiza tu industria y encuentra áreas donde la IA pueda mejorar procesos o crear nuevos modelos de negocio. La innovación es clave para generar ingresos.
  • Implementación Gradual: Comienza con proyectos pequeños e incrementa la complejidad a medida que ganes experiencia. La implementación progresiva minimiza riesgos y maximiza aprendizaje.

La Importancia de la Inteligencia Artificial en la Era Financiera Moderna

En un mundo impulsado por datos, la IA se ha convertido en un componente fundamental para la toma de decisiones financieras. Sin embargo, es crucial comprender sus limitaciones y estar consciente de los riesgos inherentes a su uso, como la dependencia excesiva en algoritmos o la falta de interpretación humana en ciertos escenarios.

El potencial de la inteligencia artificial para generar ingresos es vasto, pero su éxito depende de la comprensión de su funcionamiento y la aplicación ética de esta tecnología. Es una herramienta poderosa, pero el conocimiento humano y la creatividad siguen siendo elementos irremplazables en el proceso de generación de ingresos.

En resumen, la integración de la inteligencia artificial en estrategias financieras puede abrir nuevas oportunidades para ganar dinero, pero requiere un enfoque reflexivo y una comprensión profunda de su aplicación para maximizar su potencial.

En conclusión, la inteligencia artificial ofrece un abanico de oportunidades para generar ingresos, pero su uso efectivo y ético es crucial. Mantente informado, identifica oportunidades y adopta un enfoque gradual para capitalizar al máximo el potencial de esta revolucionaria tecnología en el ámbito financiero.

¿Estás listo para dar el siguiente paso en la generación de ingresos con inteligencia artificial? ¡Adelante, el futuro está a tu alcance!

Share:

▷ Extracción de Páginas PDF en C#: Todo lo que Necesitas Saber para Potenciar tu Desarrollo

La manipulación de archivos PDF es una tarea frecuente en el desarrollo de software, y extraer páginas específicas de un PDF puede ser esencial en muchos escenarios. En este artículo, exploraremos a fondo cómo realizar esta tarea utilizando C# sin la necesidad de código, proporcionando información valiosa y consejos prácticos para mejorar tus habilidades de desarrollo.

¿Por qué Extraer Páginas PDF?

Antes de sumergirnos en los detalles técnicos, es esencial comprender por qué puede ser necesario extraer páginas de un documento PDF. Algunas situaciones comunes incluyen la necesidad de crear vistas previas, generar informes específicos o dividir un documento grande en secciones más manejables. Independientemente de la razón, la capacidad de extraer páginas PDF de manera eficiente puede potenciar significativamente tus aplicaciones.

Herramienta Principal: PDFSharp


Para abordar la extracción de páginas PDF en C#, utilizaremos la popular librería PDFSharp. Esta herramienta de código abierto es ampliamente utilizada en el desarrollo .NET y facilita la manipulación de documentos PDF. Asegúrate de tener iTextSharp instalado en tu proyecto antes de comenzar.

Para este ejemplo utilizaremos la libreria gratuita llamada PDFSharp, es un componente OpenSource y es desarrollada en Visual Studio C#.

La cual la podemos descargar a travez de la siguiente URL:
  • http://sourceforge.net/projects/pdfsharp/files/pdfsharp

¿Cómo separar paginas PDF en archivos con PDFSharp (C#)?

Vamos al grano, para utilizar el siguiente código, cree un nuevo proyecto, por ejemplo Aplicación Windows Forms de C#. Dentro del proyecto agregue la referencia del componente descargado PdfSharp.dll

Agregamos los Using


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Captura_Fuid.Clases;
using System.IO;
using PdfSharp.Pdf.IO;
using PdfSharp.Pdf;

private void SplitPDF()
{
    string sPath;// = Directory.GetCurrentDirectory();
    string sNameFile = string.Empty;
    string sPathF = string.Empty;
    string Destino = string.Empty;
    string sPathLocal = string.Empty;

    if (dt.Rows.Count > 0)
    {
        //Ruta en donde quedaran los archivos PDF
        sPathLocal = ConfigurationManager.AppSettings["PathVisorFuid"].ToString();
        Destino = ConfigurationManager.AppSettings["PathDestino"].ToString();

        //Objeto que tiene el archivo de salida
        PdfSharp.Pdf.PdfDocument Outpdf = new PdfSharp.Pdf.PdfDocument();

        //objeto que contiene el archivo de entrada con todas las paginas
        PdfSharp.Pdf.PdfDocument Inputpdf = PdfReader.Open(Destino,                                      PdfDocumentOpenMode.Import);

        //Consulto cuantas paginas tiene el archivo
        int count = Inputpdf.PageCount;

        int Fila = 0;
        for (int idx = 0; idx < count; idx++)
        {
            Outpdf = new PdfSharp.Pdf.PdfDocument();
            //Se extrae la pagina
            PdfPage page = Inputpdf.Pages[idx];

            //Se agrega la pagina al objeto document de salida
            Outpdf.AddPage(page);
            Fila = idx + 1;

            //Para este ejemplo se arma el nmbre del archivo
            sNameFile = "Page_" + Fila + ".pdf";
            sPathF = sPathLocal + sPath + "/" + sNameFile;
            if (!File.Exists(sPathF))
            {
               Outpdf.Save(sPathF);
            }
        }
     }
}

La extracción de páginas PDF en C# es una tarea valiosa en el desarrollo de software, y la librería PDFSharp facilita enormemente este proceso. Al seguir los pasos mencionados y aplicar los consejos prácticos, podrás mejorar la eficiencia de tus aplicaciones y brindar una mejor experiencia a nuestros clientes y usuarios. 
Share:

Random: Generar cadenas de texto aleatorio C#

Hoy les traigo un ejemplo que considero que debe estar publicado en Devcate, por la necesidad e importancia a la hora de generar nombres aleatorios, ya sea para identificar un objeto único en base de datos, un usuario o producto. Este ejemplo se realiza a partir de la librería Random de .Net, que es muy utilizado también para generar números aleatorios.


Ejemplo Random Code Generator C#

Miremos el código:

private string GenerarCodigo()
{
   Random obj = new Random();
   string sCadena = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
   int longitud = sCadena.Length;
   char cletra;
   int nlongitud = 5;
   string sNuevacadena = string.Empty;
   
   for (int i = 0; i < nlongitud; i++)
   {
       cletra = posibles[obj.Next(nlongitud)];
       sNuevacadena += cletra.ToString();
   }
   return sNuevacadena;

}

En el ejemplo anterior, se crea una función llamada GenerarCodigo que retorna una cadena de 5 caracteres, espero les sea de mucha utilidad.
Share:

Validar el formato de un correo electrónico en C#

Muchas veces tenemos la necesidad de validar en .Net el correo electronico que es ingresado por un usuario en un formulario o sitio web. En este caso se valida mas de un correo separado por punto y coma (;)  e identifica que correo es valido. Si no es valido lo deja en blanco.

ValidarCorreoElectronico("Correoinvalido{{@prueba.com;CorreoValido@hotmail.com"
 
private string ValidarCorreoElectronico(string sCorreoElectronico)
    {
        string sCorreo = string.Empty;

        if (sCorreoElectronico != string.Empty)
        {
            String[] sMail = sCorreoElectronico.Split(new Char[] { ';' });            
            for (int I = 0; I < sMail.Length; I++)
            {
                if (ValidarFormatoCorreo(sMail[I].ToString()))
                {
                    sCorreo = sMail[I].ToString() + ";" + sCorreo;
                }
            }
        }
        if (sCorreo != string.Empty)
            sCorreo = sCorreo.Substring(0, sCorreo.Length - 1);

        return sCorreo;
    }

    private Boolean ValidarFormatoCorreo(String email)
    {
        String expresion;
        expresion = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
        if (Regex.IsMatch(email, expresion))
        {
            if (Regex.Replace(email, expresion, String.Empty).Length == 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            return false;
        }
    }
Share:

Select DISTINCT From Datatable Using C# Parte II

Existe siempre la necesidad de realizar un Select Distinct a un DataTable cuando las filas están repetidas. En esta ocasión les comparto una nueva solución en .Net C# que permite devolver los resultados con mas de una columna. 


using System.Data;

public DataTable SelectRowDisctinct(DataTable dtData, string sColumnName)
{
 try
 {                
  DataTable distintos = dtData.DefaultView.ToTable(true, sColumnName);
  DataTable dtNew = new DataTable();
  foreach (DataColumn dcName in dtData.Columns)
  {
   dtNew.Columns.Add(new DataColumn(dcName.Caption,dcName.DataType));
  }
   
  foreach (DataRow drRow in distintos.Rows)
  {
   dtNew.ImportRow(dtData.Select(sColumnName + " = '" + drRow[0] + "'")[0]);
  }
  return dtNew;
 }
 catch (Exception ex)
 {
  throw (ex);
 }
}

Espero les pueda servir, de un Select DISTINCT From Datatable Usando C#
Share:

Javascript Validar números en Firefox, Chrome, IE

En una publicación anterior, pudimos Validar sólo números en Javascript, la cual nos ha permitido solucionar muchos inconvenientes.

En esta ocasión les quiero compartir una validación de solo números mucho mas completa, es decir contempla navegadores como Chrome, Internet Explorer (IE) y Firefox

A continuación les muestro el código, espero que les ayude.
var nav4 = window.Event ? true : false;
function SoloNumeros(evt) {
    // NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
    var key = nav4 ? evt.which : evt.keyCode;
    return (key <= 13 || (key >= 48 && key <= 57 || key == 46));
}
Para implementarlo en Asp.Ner C# incluimos nuestro código anterior en un archivo .js y referenciarlo en nuestra pagina .aspx, así:
script src="../Scripts/Utilidad.js" type="text/javascript"></script>

Y para llamar la función la podemos implementar en una caja de texto así:

asp:TextBox ID="txtnFactura" runat="server"  onkeypress="return SoloNumeros(event);"></asp:TextBox>

Share:

Como buscar procedimiento almacenado si esta programado como Job

A continuacion podemos ver como buscar un procedimiento almacenado en Sql Server si esta programado como Job:

select sj.*
from msdb.dbo.sysjobs sj
inner join msdb.dbo.sysjobsteps sjs on sj.job_id = sjs.job_id
inner join msdb.dbo.sysjobschedules sjsc on sjs.job_id = sjsc.job_id
where sjs.command like'%Nombreprocedimientoalmacenado%'
Share:

Como Eliminar un Row de un Gridview en C#

El siguiente formato HTML consiste en un GridView de C# con dos columnas BoundField y una columna CommandField así:

<asp:GridView ID="GridView1" CssClass = "Grid" runat="server" OnRowDeleting="OnRowDeleting" AutoGenerateColumns ="false" OnRowDataBound = "OnRowDataBound">
    <Columns>
        <asp:BoundField DataField="Item" HeaderText="Item" />
        <asp:BoundField DataField="Price" HeaderText="Price" />
        <asp:CommandField ShowDeleteButton="True" ButtonType="Button" />
    </Columns>
</asp:GridView>

Dentro del evento de carga de la página , el ASP.Net GridView se rellena usando un DataTable y DataTable se guarda en la variable ViewState.

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        DataTable dt = new DataTable();
        dt.Columns.AddRange(new DataColumn[2] { new DataColumn("Item"), new DataColumn("Price") });
        dt.Rows.Add("Shirt", 450);
        dt.Rows.Add("Jeans", 3200);
        dt.Rows.Add("Trousers", 1900);
        dt.Rows.Add("Tie", 185);
        dt.Rows.Add("Cap", 100);
        dt.Rows.Add("Hat", 120);
        dt.Rows.Add("Scarf", 290);
        dt.Rows.Add("Belt", 150);
        ViewState["dt"] = dt;
        BindGrid();
    }
}
protected void BindGrid()
{
    GridView1.DataSource = ViewState["dt"] as DataTable;
    GridView1.DataBind();
}



Aplicando el cuadro de confirmación JavaScript para GridView CommandField Borrar Button

Dentro del controlador de eventos OnRowDataBound, un bucle se ejecuta en los controles Button del GridView. Si el CommandName del botón es Eliminar continua mostrando el cuadro de confirmación se asignando su atributo OnClic.

protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        string item = e.Row.Cells[0].Text;
        foreach (Button button in e.Row.Cells[2].Controls.OfType<Button>())
        {
            if (button.CommandName == "Delete")
            {
                button.Attributes["onclick"] = "if(!confirm('Do you want to delete " + item + "?')){ return false; };";
            }
        }
    }
}
Elimine el ASP.Net GridView Fila usando CommandField y eventos OnRowDeleting

Cuando se hace clic en el botón Eliminar, se ejecuta el controlador de eventos OnRowDeleting. Dentro del controlador de eventos OnRowDeleting, el Índice del GridView fila se determina y se y se utiliza para eliminar la Línea de DataTable.

Por último, el DataTable se guarda de nuevo a la ViewState y el GridView está nuevamente poblada. A continuación puedes visualizar como se Elimina un Row de un GridView de forma fácil.


protected void OnRowDeleting(object sender, GridViewDeleteEventArgs e)
{
    int index = Convert.ToInt32(e.RowIndex);
    DataTable dt = ViewState["dt"] as DataTable;
    dt.Rows[index].Delete();
    ViewState["dt"] = dt;
    BindGrid();
}
Share: