C# :: Aufgabe #59

7 Lösungen Lösungen öffentlich

Das genaue Alter ermitteln

Anfänger - C# von matzevpl - 08.08.2014 um 11:57 Uhr
Aufgabe ist, mit Hilfe einer GUI das Alter zum ermitteln.

Das Geburtsdatum kann in einem DateTimePicker ausgewählt werden.
Sollte das heutige Datum der Geburtstag sein, soll eine MessageBox ausgegeben werden mit "Herzlichen Glückwunsch zum (so alt wie die Person wird). Geburtstag"

Lösungen:

vote_ok
von matzevpl (160 Punkte) - 11.08.2014 um 10:58 Uhr
Quellcode ausblenden C#-Code
            DateTime lOBirthday = dtpBirthday.Value;
            int liYears = DateTime.Now.Year - lOBirthday.Year;
            if (lOBirthday > DateTime.Now)
                MessageBox.Show("Bitte gültiges Datum eingeben.");
            else
            {
                lOBirthday = lOBirthday.AddYears(liYears);
                var lOTest = DateTime.Now.CompareTo(lOBirthday);
                if (DateTime.Now.CompareTo(lOBirthday) < 0)
                    liYears--;
                if (DateTime.Now.Day == lOBirthday.Day && lOBirthday.Month == DateTime.Now.Month)
                {
                    if (liYears == 0)
                        MessageBox.Show("Herzlichen Glückwunsch zur Geburt.");
                    else
                        MessageBox.Show("Herzlichen Glückwunsch zum " + liYears + ". Geburtstag");
                }
                lblAge.Text = liYears.ToString();
            }
vote_ok
von Gisbert5020 (3120 Punkte) - 05.09.2014 um 14:39 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            DateTime datum = Convert.ToDateTime(dateTimePicker1.Text);
            int alt = DateTime.Now.Year - datum.Year;
            if (datum.Month > DateTime.Now.Month)
                alt -= 1;
            if (datum.Month == DateTime.Now.Month && datum.Day > DateTime.Now.Day)
                alt -= 1;
            alter.Text = alt.ToString();
            if (datum.Month == DateTime.Now.Month && datum.Day == DateTime.Now.Day)
                MessageBox.Show("Herzlichen Glückwunsch zum " + alter.Text + ". Geburtstag" );
        }
    }
}
vote_ok
von Drizzt1990 (150 Punkte) - 10.09.2014 um 15:56 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Altersrechner
{
    public partial class Form1 : Form
    {
        DateTime Zero = new DateTime(1, 1, 1);
        public Form1()
        {
            InitializeComponent();
        }

        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            TimeSpan TimeDiv = DateTime.Now.Subtract(dateTimePicker1.Value);
            int years = (Zero + TimeDiv).Year - 1;
            int days = (Zero + TimeDiv).Day - 1;
            int months = (Zero + TimeDiv).Month - 1;

            textBox1.Text = Convert.ToString(years);

            if (months == 0 && days == 0)
            {
                MessageBox.Show("Herzlichen Glückwunsch zum "+ years+ ". Geburtstag", "GZ");
            }
        }


    }
}
vote_ok
von birdlab (350 Punkte) - 26.01.2015 um 16:57 Uhr
Quellcode ausblenden C#-Code
namespace AlterErmitteln
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            string HeutigesDatum = DateTime.Now.DayOfWeek + "," + DateTime.Now.Day + "." + DateTime.Now.Month + "." + DateTime.Now.Year;
            lblDateTime.Text += HeutigesDatum;
        }

        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {

        }

        private void btnAuswerten_Click(object sender, EventArgs e)
        {
            DateTime datum = dateTimePicker1.Value;
            int alt = DateTime.Today.Year - datum.Year;

            int nYear = datum.Year;
            int nMonth = datum.Month;
            int nDay = datum.Day;

            DateTime ndatum = new DateTime(nYear, nMonth, nDay);

            DateTime aktuelldatum = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);


            if (datum.Month > DateTime.Now.Month)
                alt = alt - 1;

            if (datum.Month == DateTime.Today.Month && datum.Day > DateTime.Today.Day)
                alt = alt - 1;

            string alter = alt.ToString();

            //Geburtstag Heute
            if (datum.Month == DateTime.Today.Month && datum.Day == DateTime.Today.Day && datum.Year == DateTime.Today.Year)
            {
                MessageBox.Show("Herzlichen Glückwunsch zu ihrer Geburt! ");
            }
            else if (datum.Month == DateTime.Today.Month && datum.Day == DateTime.Today.Day)
                MessageBox.Show("Herzlichen Glückwunsch zum " + alter + ". Geburtstag !! ");
            else
            {
                if (aktuelldatum != ndatum)
                {
                    //Geburtstag in der Zukunft?
                    if (datum.Month >= DateTime.Today.Month && datum.Day >= DateTime.Today.Day && datum.Year >= DateTime.Today.Year)
                    {
                        MessageBox.Show("Bitte Sie kein zukünftiges Geburtsdatum ein!");
                    }
                    else
                    {
                        alt = alt - 1;
                        MessageBox.Show("Sie sind " + alter + " Jahre alt! ");
                    }

                }

            }
        }

        private void lblDateTime_Click(object sender, EventArgs e)
        {

        }
    }
}
vote_ok
von stbehl (1640 Punkte) - 12.02.2018 um 15:03 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TrainYourProgrammer59
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            String heute = DateTime.Today.ToString();
            heute = heute.Remove(11);
            String heuteTag = heute.Remove(5);
            String heuteJahr = heute.Remove(0, 6);
            String geburtstag = dateTimePicker1.Value.ToString();
            geburtstag = geburtstag.Remove(11);
            String geburtstagTag = geburtstag.Remove(5);
            String geburtstagJahr = geburtstag.Remove(0, 6);
            if (geburtstagTag == heuteTag)
            {
                int alter = Convert.ToInt32(heuteJahr) - Convert.ToInt32(geburtstagJahr);
                MessageBox.Show(String.Format("Herzlichen Glückwunsch zum {0}. Geburtstag!", alter));
            }
        }
    }
}
vote_ok
von stcalvin (970 Punkte) - 15.02.2018 um 11:59 Uhr
Quellcode ausblenden C#-Code
        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            int alter = 0;
            long a, b;

            a = dateTimePicker1.Value.Ticks;
            b = DateTime.Now.Ticks;

            TimeSpan zeit = new TimeSpan(b - a);

            alter = Convert.ToInt32(zeit.TotalDays / 365);

            label2.Text = "Sie sind " + Convert.ToString(alter) + " Jahre alt.";
        }
vote_ok
von syneex (2670 Punkte) - 13.05.2018 um 17:59 Uhr
Quellcode ausblenden C#-Code
private void button1_Click(object sender, EventArgs e)
        {
            //Ablauf der Überprüfung bei Betätigung des Buttons
            int day = dateTimePicker1.Value.Day;
            int month = dateTimePicker1.Value.Month; 
            label1.Text = "Sie sind " + getAge(dateTimePicker1.Value) + " Jahre alt.";

            //Wenn Person Geburtstag hat, wird Meldung angezeigt
            if(day == DateTime.Now.Day && month == DateTime.Now.Month)
            {
                MessageBox.Show("Alles Gute zu Ihrem " + getAge(dateTimePicker1.Value) + " Geburtstag!", "Meldung");
            }
        }

        //Methode zum Feststellen des Alters
        public static int getAge(DateTime birthday)
        {
            int alter = DateTime.Now.Year - birthday.Year;
            birthday = birthday.AddYears(alter);
            if (DateTime.Now.CompareTo(birthday) < 0 )
            {
                alter--;
            }
            return alter;
        }