AYUDA .NET

Humanizer C# (Cómo funciona para desarrolladores)

Actualizado julio 1, 2024
Compartir:

Humanizer es una biblioteca .NET potente y flexible que simplifica y humaniza el proceso de trabajar con datos, especialmente cuando se trata de mostrar la información en un formato fácil de usar. Si necesita convertir fechas en cadenas de tiempo relativas ("hace 3 días")para convertir cadenas de entrada deshumanizadas en frases, pluralizar palabras, formatear números como palabras o trabajar con enums, mostrar cadenas, convertir cadenas de entrada Pascal case en frases con descripciones personalizadas, convertir cadenas de entrada subrayadas en cadenas normales title case y truncar texto largo, Humanizer proporciona una plétora de herramientas y métodos de extensión para manejar estas tareas con elegancia en C#.NET para convertir cadenas de entrada deshumanizadas en frases.

En este artículo, vamos a discutir un tutorial detallado de Humanizer en C#. También discutiremos cómo generar documentos PDF utilizando Humanizer y IronPDF para C# PDF Library.

Configuración de Humanizer en C

Para empezar a utilizar Humanizer, es necesario instalar la biblioteca a través de NuGet. En su proyecto, puede hacerlo a través de la consola del gestor de paquetes con el siguiente comando:

Install-Package Humanizer
Install-Package Humanizer
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package Humanizer
VB   C#

Como alternativa, si utiliza la CLI de .NET Core, puede añadir Humanizer con:

dotnet add package Humanizer

Tras la instalación, puede empezar a utilizar Humanizer incluyendo el espacio de nombres adecuado en sus archivos de C#:

using Humanizer;
using Humanizer;
Imports Humanizer
VB   C#

Humanizar fechas y horas

Uno de los usos más comunes de Humanizer es convertir fechas y horas en formatos legibles por humanos, intervalos de tiempo, números y cantidades utilizando el método Humanize. Esto resulta especialmente útil para mostrar tiempos relativos, como "hace 2 horas" o "dentro de 5 días".

Ejemplo: Humanizar el tiempo relativo

DateTime pastDate = DateTime.Now.AddDays(-3);
string humanizedTime = pastDate.Humanize(); // Output: "3 days ago"
DateTime futureDate = DateTime.Now.AddHours(5);
string futureHumanizedTime = futureDate.Humanize(); // Output: "in 5 hours"
DateTime pastDate = DateTime.Now.AddDays(-3);
string humanizedTime = pastDate.Humanize(); // Output: "3 days ago"
DateTime futureDate = DateTime.Now.AddHours(5);
string futureHumanizedTime = futureDate.Humanize(); // Output: "in 5 hours"
Dim pastDate As DateTime = DateTime.Now.AddDays(-3)
Dim humanizedTime As String = pastDate.Humanize() ' Output: "3 days ago"
Dim futureDate As DateTime = DateTime.Now.AddHours(5)
Dim futureHumanizedTime As String = futureDate.Humanize() ' Output: "in 5 hours"
VB   C#

El método de ampliación Humanizer maneja automáticamente diferentes unidades de tiempo e incluso se ajusta a la corrección gramatical.

Humanizador C# (Cómo funciona para los desarrolladores): Figura 1 - Humanizar la salida de tiempo relativo

Humanizar los plazos

Humanizer también puede humanizar objetos TimeSpan, facilitando la visualización de duraciones en un formato legible.

Ejemplo: Humanizar TimeSpan

TimeSpan timeSpan = TimeSpan.FromMinutes(123);
string humanizedTimeSpan = timeSpan.Humanize(2); // Output: "2 hours, 3 minutes"
TimeSpan timeSpan = TimeSpan.FromMinutes(123);
string humanizedTimeSpan = timeSpan.Humanize(2); // Output: "2 hours, 3 minutes"
Dim timeSpan As TimeSpan = System.TimeSpan.FromMinutes(123)
Dim humanizedTimeSpan As String = timeSpan.Humanize(2) ' Output: "2 hours, 3 minutes"
VB   C#

Humanizador C# (Cómo funciona para los desarrolladores): Figura 2 - Humanizar la salida TimeSpan

Trabajar con números

Humanizer ofrece varios métodos para convertir números en palabras legibles y para tratar números ordinales.

Ejemplo: Conversión de números en palabras

int number = 123;
string words = number.ToWords(); // Output: "one hundred and twenty-three"
int number = 123;
string words = number.ToWords(); // Output: "one hundred and twenty-three"
Dim number As Integer = 123
Dim words As String = number.ToWords() ' Output: "one hundred and twenty-three"
VB   C#

Humanizador C# (Cómo funciona para desarrolladores): Figura 3 - Salida de números a palabras

Ejemplo: Conversión de números en ordinales

int number = 21;
string ordinal = number.ToOrdinalWords(); // Output: "twenty-first"
int number = 21;
string ordinal = number.ToOrdinalWords(); // Output: "twenty-first"
Dim number As Integer = 21
Dim ordinal As String = number.ToOrdinalWords() ' Output: "twenty-first"
VB   C#

Humanizador C# (Cómo funciona para desarrolladores): Figura 4 - Salida de número a ordinal

Pluralización y singularización

Humanizer facilita la conversión de palabras entre sus formas singular y plural, lo que resulta útil para generar dinámicamente textos largos en función de la cantidad.

Ejemplo: Pluralizar y singularizar palabras

string singular = "car";
string plural = singular.Pluralize(); // Output: "cars"
string word = "people";
string singularForm = word.Singularize(); // Output: "person"
string singular = "car";
string plural = singular.Pluralize(); // Output: "cars"
string word = "people";
string singularForm = word.Singularize(); // Output: "person"
Dim singular As String = "car"
Dim plural As String = singular.Pluralize() ' Output: "cars"
Dim word As String = "people"
Dim singularForm As String = word.Singularize() ' Output: "person"
VB   C#

Humanizer maneja también pluralizaciones y singularizaciones irregulares, lo que lo hace robusto para diversos casos de uso.

Humanizador C# (Cómo funciona para los desarrolladores): Figura 5 - Pluralizar y Singularizar la Salida

Formato de Enums

Los Enums se utilizan con frecuencia en las aplicaciones de C# para representar un conjunto de constantes con nombre. Humanizer puede convertir valores enum en cadenas legibles por humanos.

Ejemplo: Humanizar Enums

MyEnum enumValue = MyEnum.FirstValue;
string humanizedEnum = enumValue.Humanize();
System.Console.WriteLine(humanizedEnum);
public enum MyEnum
{
    FirstValue,
    SecondValue
} // Output: "First value"
MyEnum enumValue = MyEnum.FirstValue;
string humanizedEnum = enumValue.Humanize();
System.Console.WriteLine(humanizedEnum);
public enum MyEnum
{
    FirstValue,
    SecondValue
} // Output: "First value"
Private enumValue As MyEnum = MyEnum.FirstValue
Private humanizedEnum As String = enumValue.Humanize()
System.Console.WriteLine(humanizedEnum)
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'public enum MyEnum
'{
'	FirstValue,
'	SecondValue
'} ' Output: "First value"
VB   C#

Este método puede ser especialmente útil para mostrar etiquetas fáciles de usar en las interfaces de usuario.

Humanizador C# (Cómo funciona para los desarrolladores): Figura 6 - Salida de Humanize Enum

Humanizar el tamaño de los bytes

Otra función útil de Humanizer es la capacidad de humanizar los tamaños de bytes, convirtiendo los valores de bytes grandes en formatos legibles como KB, MB o GB.

Ejemplo: Humanizar el tamaño de los bytes

long bytes = 1048576;
string humanizedBytes = bytes.Bytes().Humanize(); // Output: "1 MB"
long bytes = 1048576;
string humanizedBytes = bytes.Bytes().Humanize(); // Output: "1 MB"
Dim bytes As Long = 1048576
Dim humanizedBytes As String = bytes.Bytes().Humanize() ' Output: "1 MB"
VB   C#

Humanizador C# (Cómo funciona para los desarrolladores): Figura 7 - Humanizar la salida de tamaño de byte

Escenarios avanzados

Humanizer no se limita a los escenarios básicos descritos anteriormente. Admite una amplia gama de funciones avanzadas, como el método Truncate y múltiples idiomas y extensiones.

Ejemplo: Humanizar los desfases fecha-hora

Humanizer también puede manejar DateTimeOffset, que es útil para aplicaciones que tratan con zonas horarias.

DateTimeOffset dateTimeOffset = DateTimeOffset.Now.AddDays(-2);
string humanizedDateTimeOffset = dateTimeOffset.Humanize(); // Output: "2 days ago"
DateTimeOffset dateTimeOffset = DateTimeOffset.Now.AddDays(-2);
string humanizedDateTimeOffset = dateTimeOffset.Humanize(); // Output: "2 days ago"
Dim dateTimeOffset As DateTimeOffset = System.DateTimeOffset.Now.AddDays(-2)
Dim humanizedDateTimeOffset As String = dateTimeOffset.Humanize() ' Output: "2 days ago"
VB   C#

Humanizador C# (Cómo funciona para los desarrolladores): Figura 8 - Humanización de la salida DateTime Offset

Consideraciones sobre el rendimiento

Humanizer está diseñado para ser eficiente, pero como cualquier biblioteca, su rendimiento depende de cómo se utilice. Para las aplicaciones que requieren un alto rendimiento, especialmente las que tratan con grandes conjuntos de datos o procesamiento en tiempo real, es esencial tener en cuenta el impacto de las frecuentes operaciones de humanización.

IronPDF para C

IronPDF es una completa biblioteca de generación y manipulación de PDF para aplicaciones .NET. Permite a los desarrolladores crear, leer, editar y extraer contenido de archivos PDF con facilidad. IronPDF está diseñado para ser fácil de usar, ofreciendo una amplia gama de funcionalidades, incluyendo la conversión de HTML a PDF, la fusión de documentos, la adición de marcas de agua, y mucho más. Su versatilidad y sus potentes funciones lo convierten en una excelente opción para manejar documentos PDF en proyectos de C#.

Instalación de IronPDF mediante el gestor de paquetes NuGet

Siga estos pasos para instalar IronPDF utilizando el gestor de paquetes NuGet:

  1. Abra su proyecto en Visual Studio:

    • Inicie Visual Studio y abra su proyecto C# existente o cree uno nuevo.
  2. Abra el gestor de paquetes NuGet:

    • Haga clic con el botón derecho en su proyecto en el Explorador de soluciones.

    • Seleccione "Gestionar paquetes NuGet..." en el menú contextual.

    Humanizador C# (Cómo funciona para los desarrolladores): Figura 9 - Gestor de paquetes NuGet

  3. Instalar IronPDF:

    • En el Gestor de paquetes NuGet, vaya a la pestaña "Examinar".

    • Búsqueda de IronPDF.

    • Seleccione el paquete IronPDF en los resultados de la búsqueda.

    • Haga clic en el botón "Instalar" para añadir IronPDF a su proyecto.

    Humanizador C# (Cómo funciona para desarrolladores): Figura 10 - IronPDF

    Siguiendo estos pasos, IronPDF estará instalado y listo para usar en su proyecto C#, permitiéndole aprovechar sus potentes capacidades de manipulación de PDF.

Ejemplo de código C# Humanizer y IronPDF

using Humanizer;
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Instantiate Renderer
        var renderer = new ChromePdfRenderer();
        List<string> content = GenerateHumanizedContent();
        string htmlContent = "<h1>Humanizer Examples</h1><ul>";

        // Iterate over each item in the List and add it to the HTML string
        foreach (var item in content)
        {
            htmlContent += $"<li>{item}</li>";
        }
        htmlContent += "</ul>";

        // Create a PDF from an HTML string using C#
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);

        // Export to a file or stream
        pdf.SaveAs("output.pdf");
    }

    static List<string> GenerateHumanizedContent()
    {
        List<string> content = new List<string>();

        // DateTime examples
        DateTime pastDate = DateTime.Now.AddDays(-3);
        DateTime futureDate = DateTime.Now.AddHours(5);
        content.Add($"DateTime.Now: {DateTime.Now}");
        content.Add($"3 days ago: {pastDate.Humanize()}");
        content.Add($"In 5 hours: {futureDate.Humanize()}");

        // TimeSpan examples
        TimeSpan timeSpan = TimeSpan.FromMinutes(123);
        content.Add($"TimeSpan of 123 minutes: {timeSpan.Humanize()}");

        // Number examples
        int number = 12345;
        content.Add($"Number 12345 in words: {number.ToWords()}");
        content.Add($"Ordinal of 21: {21.ToOrdinalWords()}");

        // Pluralization examples
        string singular = "car";
        content.Add($"Plural of 'car': {singular.Pluralize()}");
        string plural = "children";
        content.Add($"Singular of 'children': {plural.Singularize()}");

        // Byte size examples
        long bytes = 1048576;
        content.Add($"1,048,576 bytes: {bytes.Bytes().Humanize()}");

        return content;
    }
}
using Humanizer;
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Instantiate Renderer
        var renderer = new ChromePdfRenderer();
        List<string> content = GenerateHumanizedContent();
        string htmlContent = "<h1>Humanizer Examples</h1><ul>";

        // Iterate over each item in the List and add it to the HTML string
        foreach (var item in content)
        {
            htmlContent += $"<li>{item}</li>";
        }
        htmlContent += "</ul>";

        // Create a PDF from an HTML string using C#
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);

        // Export to a file or stream
        pdf.SaveAs("output.pdf");
    }

    static List<string> GenerateHumanizedContent()
    {
        List<string> content = new List<string>();

        // DateTime examples
        DateTime pastDate = DateTime.Now.AddDays(-3);
        DateTime futureDate = DateTime.Now.AddHours(5);
        content.Add($"DateTime.Now: {DateTime.Now}");
        content.Add($"3 days ago: {pastDate.Humanize()}");
        content.Add($"In 5 hours: {futureDate.Humanize()}");

        // TimeSpan examples
        TimeSpan timeSpan = TimeSpan.FromMinutes(123);
        content.Add($"TimeSpan of 123 minutes: {timeSpan.Humanize()}");

        // Number examples
        int number = 12345;
        content.Add($"Number 12345 in words: {number.ToWords()}");
        content.Add($"Ordinal of 21: {21.ToOrdinalWords()}");

        // Pluralization examples
        string singular = "car";
        content.Add($"Plural of 'car': {singular.Pluralize()}");
        string plural = "children";
        content.Add($"Singular of 'children': {plural.Singularize()}");

        // Byte size examples
        long bytes = 1048576;
        content.Add($"1,048,576 bytes: {bytes.Bytes().Humanize()}");

        return content;
    }
}
Imports Humanizer
Imports IronPdf
Imports System
Imports System.Collections.Generic

Friend Class Program
	Shared Sub Main()
		' Instantiate Renderer
		Dim renderer = New ChromePdfRenderer()
		Dim content As List(Of String) = GenerateHumanizedContent()
		Dim htmlContent As String = "<h1>Humanizer Examples</h1><ul>"

		' Iterate over each item in the List and add it to the HTML string
		For Each item In content
			htmlContent &= $"<li>{item}</li>"
		Next item
		htmlContent &= "</ul>"

		' Create a PDF from an HTML string using C#
		Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)

		' Export to a file or stream
		pdf.SaveAs("output.pdf")
	End Sub

	Private Shared Function GenerateHumanizedContent() As List(Of String)
		Dim content As New List(Of String)()

		' DateTime examples
		Dim pastDate As DateTime = DateTime.Now.AddDays(-3)
		Dim futureDate As DateTime = DateTime.Now.AddHours(5)
		content.Add($"DateTime.Now: {DateTime.Now}")
		content.Add($"3 days ago: {pastDate.Humanize()}")
		content.Add($"In 5 hours: {futureDate.Humanize()}")

		' TimeSpan examples
		Dim timeSpan As TimeSpan = System.TimeSpan.FromMinutes(123)
		content.Add($"TimeSpan of 123 minutes: {timeSpan.Humanize()}")

		' Number examples
		Dim number As Integer = 12345
		content.Add($"Number 12345 in words: {number.ToWords()}")
		content.Add($"Ordinal of 21: {21.ToOrdinalWords()}")

		' Pluralization examples
		Dim singular As String = "car"
		content.Add($"Plural of 'car': {singular.Pluralize()}")
		Dim plural As String = "children"
		content.Add($"Singular of 'children': {plural.Singularize()}")

		' Byte size examples
		Dim bytes As Long = 1048576
		content.Add($"1,048,576 bytes: {bytes.Bytes().Humanize()}")

		Return content
	End Function
End Class
VB   C#

Humanizador C# (Cómo funciona para desarrolladores): Figura 11 - Salida PDF

Conclusión

Humanizer es una biblioteca indispensable para los desarrolladores .NET que deseen crear aplicaciones que presenten la información en un formato legible y fácil de usar. Su amplia gama de funciones, desde la humanización de la fecha y la hora hasta el formato de números y enumeraciones, lo convierten en una herramienta versátil para mejorar la usabilidad de las aplicaciones. Gracias a Humanizer, los desarrolladores pueden ahorrar tiempo y esfuerzo a la hora de aplicar una lógica de formato personalizada, lo que garantiza que sus aplicaciones comuniquen los datos de forma más eficaz a los usuarios finales.

Del mismo modo, IronPDF ofrece completas funciones de generación y manipulación de PDF, lo que lo convierte en una excelente opción para crear y manipular documentos PDF en proyectos C#. Juntos, Humanizer e IronPDF pueden mejorar considerablemente la funcionalidad y presentación de las aplicaciones .NET. Para obtener más información sobre las licencias de IronPDF, consulte la página de licencias de IronPDF. Para profundizar en el tema, consulte nuestro tutorial detallado sobre la conversión de HTML a PDF.

< ANTERIOR
TensorFlow .NET (Cómo funciona para desarrolladores)
SIGUIENTE >
OpenAPI .NET (Cómo funciona para los desarrolladores)

¿Listo para empezar? Versión: 2024.9 acaba de salir

Descarga gratuita de NuGet Descargas totales: 10,516,730 View Licenses >