Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   .NET (https://www.clubdelphi.com/foros/forumdisplay.php?f=17)
-   -   Minutos y minuto en C# (https://www.clubdelphi.com/foros/showthread.php?t=96472)

REHome 06-11-2023 06:46:28

Minutos y minuto en C#
 
Hola:

Con este código si me lee 80 minutos, tiene que decir 1 hora y 20 minutos.

Si pongo 59 minutos me tiene que decir 59 minutos.

Si pongo 61 minutos, me tiene que decir 1 hora y 1 minuto.

Código:

        private void button_Ver_datos_Click(object sender, EventArgs e)
        {
            string entrada = "#I225.7O226.2L006B100V25.7F50.2H50.2R0080S€„€ˆ„À\r\n\r\n";

            char[] separadores = { '#', 'I', 'O', 'L', 'B', 'V', 'F', 'H', 'R', 'S' };

            string[] salida = entrada.Split(separadores, StringSplitOptions.RemoveEmptyEntries);
           
            label_I.Text = salida[0] + " V";
            label_O.Text = salida[1] + " V";
            label_L.Text = salida[2].TrimStart('0') + " %"; // Quita los ceros de la izquierda.
            label_B.Text = salida[3] + " %";
            label_V.Text = salida[4] + " V";
            label_F.Text = salida[5] + " Hz";
            label_H.Text = salida[6] + " Hz";
            label_R.Text = salida[7].TrimStart('0') + " Minutos";
        }

En consola es así:
Código:

                int totalMinutos;
                Console.Write("Ingresa el valor de minutos: ");
                totalMinutos = int.Parse(Console.ReadLine());

                if ((totalMinutos % 60) == 1)
                {
                    Console.WriteLine(totalMinutos / 60 + " hora y " + totalMinutos % 60 + " minuto.\n");
                }

                if ((totalMinutos % 60) > 1)
                {
                    Console.WriteLine(totalMinutos / 60 + " hora y " + totalMinutos % 60 + " minutos.\n");
                }

                if ((totalMinutos % 60) == 0)
                {
                    Console.WriteLine(totalMinutos / 60 + " hora y " + totalMinutos % 60 + " minutos.\n");
                }

En windows form no se como se hace.

¿Alguna idea?

Saludos.

delphi.com.ar 07-11-2023 04:36:58

La pregunta es un poco indirecta. ¿Simplemente no sabes como representar un texto en Windows Forms?

Si la respuesta es si, es imposible esquivar que debes aprender lo básico si o si Windows Forms.

Crea un proyecto windows forms, en el formulario pega y ordena los componentes que creas necesario, define en que situación se va a ejecutar tu código y sobre que componente se mostrará el resultado.

Por ejemplo pon un TextBox sobre el formulario y llámalo "teInput", Label y llamalo lbResult, para finaizar un botón, y llámalo "button_Ver_datos" (como en tu primer código), luego en el evento "OnClick" del botón, en lugar de escribir en la consola el resultado, asignárselo a la propiedad Text del Label lbResult.

Saludos

REHome 07-11-2023 07:12:44

Al final me salió tal como lo quiero.

Código:

        private void button_Ver_datos_Click(object sender, EventArgs e)
        {
            string entrada = "#I225.7O226.2L006B100V25.7F50.2H50.2R0080S€„€ˆ„À\r\n\r\n";

            char[] separadores = { '#', 'I', 'O', 'L', 'B', 'V', 'F', 'H', 'R', 'S' };

            string[] salida = entrada.Split(separadores, StringSplitOptions.RemoveEmptyEntries);
           
            label_I.Text = salida[0] + " V";
            label_O.Text = salida[1] + " V";
            label_L.Text = salida[2].TrimStart('0') + " %"; // Quita los ceros de la izquierda.
            label_B.Text = salida[3] + " %";
            label_V.Text = salida[4] + " V";
            label_F.Text = salida[5] + " Hz";
            label_H.Text = salida[6] + " Hz";

            int resultadoSalida7 = Int32.Parse(salida[7]);

            // ¿Es igual a 1 minuto?
            if ((resultadoSalida7 % 60) == 1)
            {
                label_R.Text = resultadoSalida7 / 60 + " hora y " + resultadoSalida7 % 60 + " minuto.";
            }

            // ¿Es mayor a 60 segundos o 1 minuto?
            if ((resultadoSalida7 % 60) > 1)
            {
                label_R.Text = resultadoSalida7 / 60 + " hora y " + resultadoSalida7 % 60 + " minutos.";
            }

            // ¿Es igual a 60 segundos o 1 minuto?
            if ((resultadoSalida7 % 60) == 0)
            {
                label_R.Text = resultadoSalida7 / 60 + " hora y " + resultadoSalida7 % 60 + " minutos.";
            }
        }

Muchas gracias.

REHome 27-11-2023 22:57:39

Buenas de nuevo.

Ahora si lo quiero el funcionamiento tal cual como debe ser.


No digo que sea el mejor código pero funciona de maravilla.

Código:

using System;

namespace Minutos_Horas_Consola_04
{
 * *internal class Program
 * *{
 * * * *static void Main(string[] args)
 * * * *{
 * * * * * *#region Configuración ventana.
 * * * * * *// Título de la ventana.
 * * * * * *Console.Title = "De solo a Minutos a Horas y Minutos";

 * * * * * *// Tamaño de la ventana, x, y, o ancho y alto.
 * * * * * *const byte ANCHO_X = 70, ALTO_Y = 25;
 * * * * * *Console.SetWindowSize(ANCHO_X, ALTO_Y);

 * * * * * *// Color de fondo.
 * * * * * *Console.BackgroundColor = ConsoleColor.Green;

 * * * * * *// Color de las letras.
 * * * * * *Console.ForegroundColor = ConsoleColor.Black;

 * * * * * *// Limpiar pantalla y dejarlo todo en color de fondo.
 * * * * * *Console.Clear();

 * * * * * *// Visible el cursor.
 * * * * * *Console.CursorVisible = true;
 * * * * * *#endregion

 * * * * * *while (true)
 * * * * * *{
 * * * * * * * *int totalMinutos;
 * * * * * * * *Console.Write("Ingresa el valor de minutos: ");
 * * * * * * * *totalMinutos = int.Parse(Console.ReadLine());

 * * * * * * * *// Cálculos.
 * * * * * * * *int horas = totalMinutos / 60;
 * * * * * * * *int minutos = totalMinutos % 60;

 * * * * * * * *// ¿0 horas y 1 minuto?
 * * * * * * * *if ((horas == 0) && (minutos == 1))
 * * * * * * * *{
 * * * * * * * * * *Console.WriteLine($"> {minutos} minuto.");
 * * * * * * * *}

 * * * * * * * *// ¿0 horas y 0 minuto?
 * * * * * * * *if ((horas == 0) && (minutos == 0))
 * * * * * * * *{
 * * * * * * * * * *Console.WriteLine($"> {minutos} minutos.");
 * * * * * * * *}

 * * * * * * * *// ¿0 horas y más de 1 minuto?
 * * * * * * * *if ((horas == 0) && (minutos > 1))
 * * * * * * * *{
 * * * * * * * * * *Console.WriteLine($"> {minutos} minutos.");
 * * * * * * * *}

 * * * * * * * *// ¿1 hora y 0 minutos?
 * * * * * * * *if ((horas == 1) && (minutos == 0))
 * * * * * * * *{
 * * * * * * * * * *Console.WriteLine($"> {horas} hora.");
 * * * * * * * *}

 * * * * * * * *// ¿Más de una hora y 0 minutos?
 * * * * * * * *if ((horas > 1) && (minutos == 0))
 * * * * * * * *{
 * * * * * * * * * *Console.WriteLine($"> {horas} horas.");
 * * * * * * * *}

 * * * * * * * *// ¿1 hora y 1 minuto?
 * * * * * * * *if ((horas == 1) && (minutos == 1))
 * * * * * * * *{
 * * * * * * * * * *Console.WriteLine($"> {horas} hora y {minutos} minuto.");
 * * * * * * * *}

 * * * * * * * *// ¿1 hora y más de 1 minuto?
 * * * * * * * *if ((horas == 1) && (minutos > 1))
 * * * * * * * *{
 * * * * * * * * * *Console.WriteLine($"> {horas} hora y {minutos} minutos.");
 * * * * * * * *}

 * * * * * * * *// ¿Más de 1 hora y 1 minuto?
 * * * * * * * *if ((horas > 1) && (minutos == 1))
 * * * * * * * *{
 * * * * * * * * * *Console.WriteLine($"> {horas} horas y {minutos} minuto.");
 * * * * * * * *}

 * * * * * * * *// ¿Más de 1 horas y más de 1 minuto?
 * * * * * * * *if ((horas > 1) && (minutos > 1))
 * * * * * * * *{
 * * * * * * * * * *Console.WriteLine($"> {horas} horas y {minutos} minutos.");
 * * * * * * * *}
 * * * * * *}
 * * * *}
 * *}
}

Son solo nueve combinaciones.

Saludos.


La franja horaria es GMT +2. Ahora son las 07:54:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi