Initial Commit
This commit is contained in:
parent
150081e5f4
commit
e59038ce18
|
|
@ -0,0 +1,93 @@
|
||||||
|
|
||||||
|
# Created by https://www.gitignore.io/api/intellij
|
||||||
|
# Edit at https://www.gitignore.io/?templates=intellij
|
||||||
|
|
||||||
|
### Intellij ###
|
||||||
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
|
||||||
|
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||||
|
|
||||||
|
# User-specific stuff
|
||||||
|
.idea/**/workspace.xml
|
||||||
|
.idea/**/tasks.xml
|
||||||
|
.idea/**/usage.statistics.xml
|
||||||
|
.idea/**/dictionaries
|
||||||
|
.idea/**/shelf
|
||||||
|
|
||||||
|
# Generated files
|
||||||
|
.idea/**/contentModel.xml
|
||||||
|
|
||||||
|
# Sensitive or high-churn files
|
||||||
|
.idea/**/dataSources/
|
||||||
|
.idea/**/dataSources.ids
|
||||||
|
.idea/**/dataSources.local.xml
|
||||||
|
.idea/**/sqlDataSources.xml
|
||||||
|
.idea/**/dynamic.xml
|
||||||
|
.idea/**/uiDesigner.xml
|
||||||
|
.idea/**/dbnavigator.xml
|
||||||
|
|
||||||
|
# Gradle
|
||||||
|
.idea/**/gradle.xml
|
||||||
|
.idea/**/libraries
|
||||||
|
|
||||||
|
# Gradle and Maven with auto-import
|
||||||
|
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||||
|
# since they will be recreated, and may cause churn. Uncomment if using
|
||||||
|
# auto-import.
|
||||||
|
# .idea/modules.xml
|
||||||
|
# .idea/*.iml
|
||||||
|
# .idea/modules
|
||||||
|
# *.iml
|
||||||
|
# *.ipr
|
||||||
|
|
||||||
|
# CMake
|
||||||
|
cmake-build-*/
|
||||||
|
|
||||||
|
# Mongo Explorer plugin
|
||||||
|
.idea/**/mongoSettings.xml
|
||||||
|
|
||||||
|
# File-based project format
|
||||||
|
*.iws
|
||||||
|
|
||||||
|
# IntelliJ
|
||||||
|
out/
|
||||||
|
|
||||||
|
# mpeltonen/sbt-idea plugin
|
||||||
|
.idea_modules/
|
||||||
|
|
||||||
|
# JIRA plugin
|
||||||
|
atlassian-ide-plugin.xml
|
||||||
|
|
||||||
|
# Cursive Clojure plugin
|
||||||
|
.idea/replstate.xml
|
||||||
|
|
||||||
|
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||||
|
com_crashlytics_export_strings.xml
|
||||||
|
crashlytics.properties
|
||||||
|
crashlytics-build.properties
|
||||||
|
fabric.properties
|
||||||
|
|
||||||
|
# Editor-based Rest Client
|
||||||
|
.idea/httpRequests
|
||||||
|
|
||||||
|
# Android studio 3.1+ serialized cache file
|
||||||
|
.idea/caches/build_file_checksums.ser
|
||||||
|
|
||||||
|
### Intellij Patch ###
|
||||||
|
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
|
||||||
|
|
||||||
|
# *.iml
|
||||||
|
# modules.xml
|
||||||
|
# .idea/misc.xml
|
||||||
|
# *.ipr
|
||||||
|
|
||||||
|
# Sonarlint plugin
|
||||||
|
.idea/**/sonarlint/
|
||||||
|
|
||||||
|
# SonarQube Plugin
|
||||||
|
.idea/**/sonarIssues.xml
|
||||||
|
|
||||||
|
# Markdown Navigator plugin
|
||||||
|
.idea/**/markdown-navigator.xml
|
||||||
|
.idea/**/markdown-navigator/
|
||||||
|
|
||||||
|
# End of https://www.gitignore.io/api/intellij
|
||||||
|
|
@ -1 +1,2 @@
|
||||||
arbeitszeiterfassung
|
# Arbeitszeiterfassung
|
||||||
|

|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 2.4 MiB |
|
|
@ -0,0 +1,117 @@
|
||||||
|
package gfn.marc;
|
||||||
|
|
||||||
|
import java.time.YearMonth;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
|
||||||
|
// Testdaten
|
||||||
|
static int[][] zeiten = {
|
||||||
|
{2, 480},
|
||||||
|
{2, 1_040},
|
||||||
|
{3, 470},
|
||||||
|
{6, 480},
|
||||||
|
{6, 960},
|
||||||
|
{7, 990},
|
||||||
|
{8, 480},
|
||||||
|
{8, 960},
|
||||||
|
{30, 990}
|
||||||
|
};
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int persnr = 12345;
|
||||||
|
erzeugeListe(persnr, zeiten, 2013, 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
// zu programmierende Methode
|
||||||
|
static void erzeugeListe(int persnr, int[][] zeiten, int jahr, int monat) {
|
||||||
|
|
||||||
|
int anwesenheitMonat = 0;
|
||||||
|
int tag = 1;
|
||||||
|
schreibeKopfzeile(persnr, jahr, monat);
|
||||||
|
for (int i = 0; tag <= tageImMonat(monat, jahr); ) {
|
||||||
|
int min1 = -1;
|
||||||
|
int min2 = -1;
|
||||||
|
int anwesenheitTag = -1;
|
||||||
|
String bemerkung = "";
|
||||||
|
|
||||||
|
if (i < zeiten.length && zeiten[i][0] == tag) {
|
||||||
|
min1 = zeiten[i][1];
|
||||||
|
}
|
||||||
|
if (i + 1 < zeiten.length && zeiten[i + 1][0] == tag) {
|
||||||
|
min2 = zeiten[i + 1][1];
|
||||||
|
}
|
||||||
|
if (min1 == -1 ^ min2 == -1) {
|
||||||
|
bemerkung = "eine Buchung fehlt";
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
if (min1 != -1 && min2 != -1) {
|
||||||
|
anwesenheitTag = min2 - min1;
|
||||||
|
anwesenheitMonat += anwesenheitTag;
|
||||||
|
i += 2;
|
||||||
|
}
|
||||||
|
if (min1 == -1 && min2 == -1)
|
||||||
|
bemerkung = "nicht anwesend";
|
||||||
|
|
||||||
|
|
||||||
|
schreibeZeile(tag, min1, min2, anwesenheitTag, bemerkung);
|
||||||
|
tag++;
|
||||||
|
}
|
||||||
|
|
||||||
|
schreibeFusszeile(anwesenheitMonat);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// gegebene Methoden
|
||||||
|
static int tageImMonat(int monat, int jahr) {
|
||||||
|
YearMonth yearMonth = YearMonth.of(jahr, monat);
|
||||||
|
return yearMonth.lengthOfMonth();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void schreibeKopfzeile(int persnr, int jahr, int monat) {
|
||||||
|
String[] monate = {"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September",
|
||||||
|
"Oktober", "November", "Dezember"};
|
||||||
|
System.out.println("\nMitarbeiter: " + persnr + " " + monate[monat + 1] + " " + jahr + "\n");
|
||||||
|
System.out.println("Tag Kommen Gehen Anwesenheit Bemerkung");
|
||||||
|
System.out.println("========================================================");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void schreibeZeile(int tag, int min1, int min2, int anwesenheitTag, String bemerkung) {
|
||||||
|
String kommen = " ";
|
||||||
|
String gehen = " ";
|
||||||
|
String anwesenheit = "00:00";
|
||||||
|
String tagString = tag < 10 ? " " + tag : "" + tag;
|
||||||
|
if (min1 != -1) {
|
||||||
|
int h = min1 / 60;
|
||||||
|
int m = min1 % 60;
|
||||||
|
String stunde = h < 10 ? "0" + h : "" + h;
|
||||||
|
String minute = m < 10 ? "0" + m : "" + m;
|
||||||
|
kommen = stunde + ":" + minute + " ";
|
||||||
|
}
|
||||||
|
if (min2 != -1) {
|
||||||
|
int h = min2 / 60;
|
||||||
|
int m = min2 % 60;
|
||||||
|
String stunde = h < 10 ? "0" + h : "" + h;
|
||||||
|
String minute = m < 10 ? "0" + m : "" + m;
|
||||||
|
gehen = stunde + ":" + minute + " ";
|
||||||
|
}
|
||||||
|
if (anwesenheitTag != -1) {
|
||||||
|
int h = anwesenheitTag / 60;
|
||||||
|
int m = anwesenheitTag % 60;
|
||||||
|
String stunde = h < 10 ? "0" + h : "" + h;
|
||||||
|
String minute = m < 10 ? "0" + m : "" + m;
|
||||||
|
anwesenheit = stunde + ":" + minute;
|
||||||
|
}
|
||||||
|
System.out.println(tagString + " " + kommen + " " + gehen + " " + anwesenheit + " " + bemerkung);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void schreibeFusszeile(int anwesenheitMonat) {
|
||||||
|
int h = anwesenheitMonat / 60;
|
||||||
|
int m = anwesenheitMonat % 60;
|
||||||
|
String stunde = h < 10 ? "0" + h : "" + h;
|
||||||
|
String minute = m < 10 ? "0" + m : "" + m;
|
||||||
|
System.out.println("========================================================");
|
||||||
|
System.out.println("Summe Anwesenheit: " + stunde + ":" + minute);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
Loading…
Reference in New Issue