Konwertowanie

Odpowiedz Nowy wątek
2019-07-12 14:23
0

Czy można zrobić kod który dokładnie obliczy ile użytkownik ma lat wprowadzając dane jego urodzenia w konsoli?
Sęk w tym że to już zrobiłem tylko rzecz w tym że załóżmy urodziłem się 1999.01.01 a jest 2018.12.31 jeśli system będzie tylko miał datę obliczy że mam już 18 lat i jestem pełnoletni a nie jestem bo brakuje mi jednego dnia, to kod niestety tylko ma wprowadzoną date i jej nie aktualizuje:

początek:
               Console.Clear();

            Console.WriteLine("Podaj swój rok urodzenia\n");

            int Rok = 0;

            //new DateTimeOffset(DateTime.Now).ToUnixTimeMilliseconds();
            int number = 2019;

            var RokString = Console.ReadLine();

            Rok = int.Parse(RokString);

            int Wynik =  number - Rok;

            if (Wynik > 17)
            {
                Console.Clear();
                Console.WriteLine("Jesteś Pełnoletni ,masz " + Wynik + " lat");

            }
            if (Wynik < 19)
            {

                Console.Clear();
                Console.WriteLine("Nie Jesteś Pełnoletni ,masz " + Wynik + " lat");

            }

            Console.WriteLine("Chcesz sprawdzić jeszcze raz czy jesteś pełnoletni ?");
            Console.WriteLine("\nT/N");
            var T_N = Console.ReadLine();
            if (T_N == "T")
            {

                goto początek;

            }
            if (T_N == "N")
            {

                return;

            }

jeśli ktoś ma pomysł na rozwiązanie tej zagadki z aktualizacją danych niech pisze :) :) :)
PS. Jak by to było możliwe w DateTime to bardzo dziękuję, jeśli nie to każde możliwe rozwiązanie :)

edytowany 4x, ostatnio: cerrato, 2019-07-12 14:45

Pozostało 580 znaków

2019-07-12 14:26
0

Jak to nie jest pełnoletni?

... tłumaczył się pedofil :P - PerlMonk 2019-07-12 14:31

Pozostało 580 znaków

2019-07-12 14:32
0

To był mój mylny niestety przykład ale np. urodziłem się 2000.01.01 a jest 2017.12.31 jeśli system będzie tylko miał datę obliczy że mam już 18 lat

Pozostało 580 znaków

2019-07-12 14:33
0

:)

Pozostało 580 znaków

2019-07-12 14:42
1
...
var startDate = new DateTime(2000, 1, 1);
var endDate = new DateTime(2017, 12, 31);
var result = CalculateYears(startDate,endDate);
...

 public int CalculateYears(DateTime start, DateTime end)
 {
      return (end.Year - start.Year - 1) +
                (((end.Month > start.Month) ||
                ((end.Month == start.Month) && (end.Day >= start.Day))) ? 1 : 0);
}
Czy można aktualizować Date? Pobierać? DateTime powoduje pobranie aktualnej daty oto mi chodzi, żeby data zawsze była aktualna :) - Mondonno 2019-07-12 14:51
i wtedy z aktualnej daty wyliczyć czy ktoś jest pełnoletni :) - Mondonno 2019-07-12 14:52
Użyj DateTime.Now - mariano901229 2019-07-12 14:54
Tak wiem tylko DataTime ale nie umiem przekonwertować na int żeby od tej daty odjąć datę urodzenia użytkownika - Mondonno 2019-07-12 14:55
No to po to masz metodę wyżej - pierwszy parametr data urodzenia, drugi aktualna data - mariano901229 2019-07-12 14:56
Ok, ale data nie jest automatycznie aktualizowana ale ręcznie w kodzie chodzi mi oto żeby automatycznie aktualizował Rok.Mesiąc.Dzień - Mondonno 2019-07-12 14:59

Pozostało 580 znaków

2019-07-12 15:15
    DateTime zeroTime = new DateTime(1, 1, 1);
    DateTime date1 = new DateTime(1996, 11, 12, 22, 15, 0);
    DateTime date2 = DateTime.Now;
    TimeSpan diff1 = date2.Subtract(date1);
    var aleOsiemnastka = (zeroTime + diff1).Year - 1;
    Console.WriteLine(aleOsiemnastka > 17 ? "TAK" : "NIE");
edytowany 1x, ostatnio: Visual Code, 2019-07-12 15:27
Z tego co wiem to data z liczbami binare czy da się więc wprowadzić date urodzenie użytkownika z klawiatury? :) - Mondonno 2019-07-12 15:21
Jeśli się da proszę o odpowiedź :) - Mondonno 2019-07-12 15:21

Pozostało 580 znaków

2019-07-12 15:28
0

Z tego co wiem to data z liczbami binare czy da się więc wprowadzić date urodzenie użytkownika z klawiatury? :)
Jeśli się da proszę o odpowiedź :)

Pozostało 580 znaków

2019-07-12 15:30
1

Nie wiem o co Ci chodzi, ale nie mam co robic w pracy więc i podobno wy młodzi 'programiści' nie ogarnanice nawet google:

public String promtUser(String prompt)
{
    Console.WriteLine(prompt + ": ");
    return Console.ReadLine()
}

var zmiennacoś= promtUser("Podaj coś");

A w DateTime możesz zainicjalizować dodatkowo godziną jakie liczby binarne.
Prosze.

edytowany 2x, ostatnio: Visual Code, 2019-07-12 15:36
Wygłupiłem się, Dzięki - Mondonno 2019-07-12 15:31
Dzięki, nie trzeba było sam opanowałem :) - Mondonno 2019-07-12 17:03

Pozostało 580 znaków

2019-07-12 17:04
0

Uważam temat za zakończony
dziękuje za wszystkie pomocne odpowiedzi
problem został rozwiązany

Serdecznie wszystkim dziękuję :)

edytowany 2x, ostatnio: Mondonno, 2019-07-12 17:22

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0