Dienst- Generator

Status
Nicht offen für weitere Antworten.
M

Mark11

Gast
Hallo ! :lol:

hab eine frage ...
wie kann ich einen quasi kalender erstellen, der die tage eines monats hat, und zum beispiel 10 Namen.

Diese Namen stehen für die jenige Person die zum beispiel am 01.01.05 Abspüldienst hat...


also ich will einen Plan generieren, 10 Namen gebe ich vor und das Programm generiert mir, wer an welchem Tag Abspüldienst hat..

kann mir da jemand helfen wie ich anfangen soll ?

Danke im Vorraus

mfg
M11
 

The_S

Top Contributor
1. Versteh ich nicht 100pro was du willst. Woher soll das Programm wissen wer wann abspüldienst hat, oder soll es einfach die Namen gerecht verteilen?
2. Wo liegt dein Problem genau? Hier ein Anfang

Code:
public class Abspueldienst{

    public Abspueldienst(int monat, String[] namen) {
    }
}
 
M

Mark11

Gast
genau richtig Hobbit, das Programm soll gerecht generieren, das jeder gleich viel im Monat macht..

mein problem ist halt nur mit welchen funktion man das machen kann.....
 

jagdfalke

Bekanntes Mitglied
Ich würde sagen du fängst einfach mal mit Januar an, gehst jeden Tag durch und suchst dir per random-Funktion einen Index für das Array mit den Namen. Die erste Zufallszahl ist einfach der erste, der Dienst hat. Ab da gehst du einfach der Reihe nach vor. Wenn du also Index 4 hattest, muss am nächsten Tag die Nummer 5 arbeiten, dann die 6 etc. Am Ende einfach wieder von vorne anfangen. Und wenn am letzten Tag vom Januar Nummer 2 Dienst hatte muss am 1. Februar aben die Nummer 3 dran glauben.
Das ist die einfachste Methode um zu gewährleiten, dass die Verteilung gerecht ist. Du könntest auch auf die Normalverteilung spekulieren aber da bleibt ein Restrisiko, dass manche vielleicht garnicht drankommen.

mfg
jagdfalke
 
G

Gast

Gast
ok danke erstmal für die hilfe, aber was meinst du mit Normalverteilung? noch andere möglichkeiten?
 

jagdfalke

Bekanntes Mitglied
Wenn du 4 Namen hast, ist die Wahrscheinlichkeit, dass der Name gezogen wird, 0.25, logisch oder? Dh. wenn du 100 mal ziehst erwartet man, dass du jeden namen 25 Mal ziehst. Das wäre "normal". Abweichungen davon sind möglich aber je weiter die Abweichung vom Erwartungswert liegt desto unwahrscheinlicher wird das ganze.
Normalverteilung.gif

Bei dem Bild hier müsste man noch die Spitz hier oben um 25 nach rechts schieben.


mfg
jagdfalke
 
G

Gast

Gast
Könntest du das etwas deutlicher machen anhand beispiel, weil ich mir darunten nichts vorstellen kann
----Ich würde sagen du fängst einfach mal mit Januar an, gehst jeden Tag durch und suchst dir per random-Funktion einen Index für das Array mit den Namen. Die erste Zufallszahl ist einfach der erste, der Dienst hat. ----

sorry :)
 

jagdfalke

Bekanntes Mitglied
Code:
String[] names;
int r = randomZahl;

for( each day in year) {
     System.out.println("an Tag x ist " + names[r] + "dran");
     r++;
     if(r > names.lengh) {
        r = 0;
     }   
}

Jetzt besser???
 
M

Mark

Gast
gut nun weiß ich nicht, wie ich an die Tage eines Monats komme mit Wochenende usw...
weiß da jemand was?

also code sieht im moment so aus
Code:
class Dienst{

    public static void main(String[] args){
        
    String[] names = {"hans", "peter","markus","daniel","martin","murat"};
    
int r = 30*(int)Math.random();

for(int i=0;i<=5;i++) {
     System.out.println("an Tag "+i+" ist " + names[r] + " dran");
     r++;
     if(r > names.length) {
        r = 0;
     }   
}
}}

Das geht ja nur für fünf Tage, und ein Datum zeigt er ja natürlich auch nicht an weil ich nix drin habe...


danke..
 

The_S

Top Contributor
Sowas (hier mach ich aber eine "gerechte" Verteilung und kein Zufällige)

Code:
import java.util.GregorianCalendar;

public class Abspueldienst {
	
	// 1. Argument = Monat, 2. Argument Jahr, nachfolgende zu verteilende Namen
	public static void main(String[] args) {
		
		if (args.length < 3) {
			System.out.println("Fehlerhafte Parameterübergabe! Parameter wie folgt uebergeben:");
			System.out.println("java Abspueldienst Monat Jahr Name1 Name2 Name3 NameX");
			System.out.println("Ein Beispielaufruf:");
			System.out.println("java Abspueldienst 7 2006 \"Hans Peter\" Manuel Hausmeister Mama Papa");
		}
		else {
			try {
				int monat = Integer.parseInt(args[0]);
				if (monat > 12) {
					throw new NumberFormatException();
				}
				int jahr = Integer.parseInt(args[1]);
				int tage = 31;
				switch (monat) {
					case 4: {
					}
					case 6: {
					}
					case 9: {
					}
					case 11: {
						tage = 30;
						break;
					}
					case 2: {
						if (new GregorianCalendar().isLeapYear(jahr)) {
							tage = 29;
						}
						else {
							tage = 28;
						}
						break;
					}
				}
				for (int i = 1, j = 2; i <= tage; i++, j++) {
					if (j >= args.length) {
						j = 2;
					}
					System.out.println("Am " + i + "." + monat + "." + jahr + " hat " + args[j] + " Kuechendienst.");
				}
			}
			catch (NumberFormatException e) {
				System.out.println("Fehlerhafte Parameterübergabe! Parameter wie folgt übergeben:");
				System.out.println("java Abspueldienst Monat Jahr Name1 Name2 Name3 NameX");
				System.out.println("Ein Beispielaufruf:");
				System.out.println("java Abspueldienst 7 2006 \"Hans Peter\" Manuel Hausmeister Mama Papa");
			}
		}
	}
}
 

Leroy42

Top Contributor
jagdfalke und manch anderer hat gesagt.:
Du könntest auch auf die Normalverteilung spekulieren aber da bleibt ein Restrisiko...

Also eins weiß ich mit Sicherheit nach lesen dieses Threads:
Hätte ich damals in meiner WG mit solchen Begriffen herumgeworfen
um meine Mitbewohner von meinem Abspülplangenerierungsprogramm
zu überzeugen, wer mir der Abspüldienst mit Sicherheit erspart geblieben.
:D

Zumindest in dieser WG... :shock:
:cool:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Dienst zum Text kopieren und Variable hochzählen Java Basics - Anfänger-Themen 7
B Java-Programm-Dienst sauber beenden Java Basics - Anfänger-Themen 6
T MySQL-Dienst starten und stoppen aus Netbeans Java Basics - Anfänger-Themen 3
M Java-Programm als Dienst? Java Basics - Anfänger-Themen 4
G Java-Programm als "Dienst" Java Basics - Anfänger-Themen 10
H Dienst beenden als normaler User Java Basics - Anfänger-Themen 3
L JAVA als dienst starten Java Basics - Anfänger-Themen 4
L Application als Dienst starten Java Basics - Anfänger-Themen 4
E Zig Zag Generator Java Basics - Anfänger-Themen 1
JavaBeginner22 Passwort Generator Java Basics - Anfänger-Themen 2
Trumbly OOP Vierstelligen 'Code-Generator' Java Basics - Anfänger-Themen 2
A Android-Lib: Sourcecode Generator mittels Annotation Processing Java Basics - Anfänger-Themen 0
T Passwort Generator Java Basics - Anfänger-Themen 2
P Password Generator - Fehler bei "keiner Eingabe" Java Basics - Anfänger-Themen 6
M Passwort-Generator Java Basics - Anfänger-Themen 3
L Nummern Generator (mit do-while Schleife) Problem Java Basics - Anfänger-Themen 7
R ArrayList generator Java Basics - Anfänger-Themen 3
c_sidi90 Passwort Generator Code Erweiterung Java Basics - Anfänger-Themen 12
c_sidi90 Hilfe PW Generator Java Basics - Anfänger-Themen 12
Z Problem mit Lottozahlen Generator Java Basics - Anfänger-Themen 2
D XML to XSD Generator Java Basics - Anfänger-Themen 13
A Problem mit dem Zufallszahlen-Generator Java Basics - Anfänger-Themen 17
G strichcode-generator Java Basics - Anfänger-Themen 7
B random number generator Java Basics - Anfänger-Themen 5
G zahlen generator Java Basics - Anfänger-Themen 4
B Passwort generator Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben