Java – die besten Beiträge

Java - wievielter Tag im Jahr berechnen?

Hallo, ich habe folgende Aufgabenstellung: Schreiben Sie ein Programm, das für ein gegebenes Datum bestehend aus Tag, Monat und Jahr ausrechnet, um den wievielten Tag im Jahr es sich handelt. (Achtung: Schaltjahrproblematik nicht vergessen.)

Mein Code:

import java.util.Scanner;
public class TagImJahr
{
    public static void main(String[] args)
    {
        Scanner read = new Scanner(System.in);

        int tag, monat, jahr, anzahlTage, wievielterTag, monatTag;
        boolean Schaltjahr;

        System.out.println("Geben Sie einen Tag ein: ");
        tag = read.nextInt();

        System.out.println("Geben Sie einen Monat ein: ");
        monat = read.nextInt();

        System.out.println("Geben Sie ein Jahr ein: ");
        jahr = read.nextInt();

        Schaltjahr = (jahr%4 == 0) && (jahr%100 != 0) || (jahr%400 == 0);

        if(Schaltjahr && monat == 2)
        {
            anzahlTage = 366;                                       //Anzahl der Tage im Jahr
            monatTag = 29;                                          //Tage im Monat
        }
        else
        {
            anzahlTage = 365;                                       //Anzahl der Tage im Jahr
            monatTag = 31;                                          //Tage im Monat
        }

        int datum = anzahlTage + (monat * monatTag - monatTag) + tag;

        wievielterTag = datum - anzahlTage;

        System.out.println("Der " + tag + "." + monat + "." + jahr + " ist der " + wievielterTag + ". Tag im Jahr");
    }
}

Jedoch fehlt bei mir irgendwas, evtl. das manche Monate 31 und 30 Tage haben, wie baue ich dies jedoch am Besten ein? Bei ein paar Datumseingaben kommt das richtige Ergebnis, bei anderen weichen die Tage um paar Zahlen ab.

Kann mir bitte jemand weiterhelfen?

Studium, programmieren, Java

Array List bearbeiten?

Hallo zusammen

Benötige eure Unterstützung bei zwei Aufgaben die ich versucht habe zu lösen.

Leider bisher ohne Erfolg.

Aufgabe 1

Die Klasse Person sieht wie folgt aus:

public class Person {
   public String name;
   public int jahrgang;
   
   public Person(String n, int j) {
      this.name = n;
      this.jahrgang = j;
   }
}

Ersetze den Namen der zweiten Person mit "Peter" in dem du den Namen im bestehenden Objekt anpasst. Das bestehende Objekt soll also nicht überschrieben, sondern nur geändert werden.

import java.util.ArrayList;
public class Test {

   public static void main(String[] args) {
   
      ArrayList<Person> personen = new ArrayList<Person>();
      Person p1 = new Person("Hans",1997);
      Person p2 = new Person("Petra",1998);
      personen.add(p1);
      personen.add(p2);

Meine falsche Antwort:

Person p2 = Person("Peter", 1998);

Weitere Aufgabe:

Die Klasse Person2 sieht wie folgt aus:

public class Person2 {
   private String name;
   
   public Person2(String n) {
      this.name = n;
   }
   
   public String getName() {
      return name;
   }
   
   public void setName(String n) {
      name = n;
   }
}

Ersetze den Namen der zweiten Person mit "Fred" in dem du den Namen im bestehenden Objekt anpasst. Das bestehende Objekt soll also nicht überschrieben, sondern nur geändert werden.

import java.util.ArrayList;
public class Test {

   public static void main(String[] args) {
   
      ArrayList<Person2> personen2 = new ArrayList<Person2>();
      personen2.add(new Person2("Franz"));
      personen2.add(new Person2("Franziska"));


Meine falsche Antwort: 
personen2.set(1, new Person("Fred"));


Vielen Dank euch für die Hilfe und Erklärungen.

Java, Array

Meistgelesene Beiträge zum Thema Java