This commit is contained in:
Robert Vokac 2024-03-23 08:20:05 +01:00
parent e0f62c66bb
commit f28ca92503
No known key found for this signature in database
GPG Key ID: 693D30BEE3329055
5 changed files with 53 additions and 22 deletions

View File

@ -77,9 +77,11 @@ public class Progress {
return result;
}
public static double getYearProgress(Integer year, Integer month,
public static double getYearProgress(double monthProgress, Integer year, Integer month,
Integer day, Integer hour, Integer minute, Integer second,
Integer millisecond) {
double totalCountOfDaysInAYear = getTotalCountOfDaysInAYear(year);
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month - 1);
@ -88,22 +90,46 @@ public class Progress {
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.SECOND, second);
cal.set(Calendar.MILLISECOND, millisecond);
double seconds = second + millisecond / 1000d;
double minutes = minute + seconds / 60d;
double hours = hour + minutes / 60d;
double days = cal.get(Calendar.DAY_OF_YEAR) + hours / 24d;
// System.out.println("millisecond=" + millisecond);
// System.out.println("seconds=" + seconds);
// System.out.println("minutes=" + minutes);
// System.out.println("hours=" + hours);
// System.out.println("days=" + days);
// System.out.println("cal.get(Calendar.DAY_OF_YEAR)=" + cal.get(Calendar.DAY_OF_YEAR));
double totalCountOfDaysInAYear = getTotalCountOfDaysInAYear(year);
return days / totalCountOfDaysInAYear;
int daysInMonth = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
if(month == 1) {
return (daysInMonth * monthProgress + totalCountOfDaysInAYear - daysInMonth) / totalCountOfDaysInAYear;
} else {
cal.set(Calendar.MONTH, month - 2);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
int totalDaysUntilLastDayOfLastMonth = cal.get(Calendar.DAY_OF_YEAR);
cal.set(Calendar.MONTH, month - 1);
cal.set(Calendar.DAY_OF_MONTH, day);
return (totalDaysUntilLastDayOfLastMonth + (daysInMonth * monthProgress) + (totalCountOfDaysInAYear - totalDaysUntilLastDayOfLastMonth - daysInMonth))/totalCountOfDaysInAYear;
}
}
// public static double getYearProgress(Integer year, Integer month,
// Integer day, Integer hour, Integer minute, Integer second,
// Integer millisecond) {
// Calendar cal = Calendar.getInstance();
// cal.set(Calendar.YEAR, year);
// cal.set(Calendar.MONTH, month - 1);
// cal.set(Calendar.DAY_OF_MONTH, day);
// cal.set(Calendar.HOUR, hour);
// cal.set(Calendar.MINUTE, minute);
// cal.set(Calendar.SECOND, second);
// cal.set(Calendar.MILLISECOND, millisecond);
//
// double seconds = second + millisecond / 1000d;
// double minutes = minute + seconds / 60d;
// double hours = hour + minutes / 60d;
// double days = cal.get(Calendar.DAY_OF_YEAR) + hours / 24d;
// // System.out.println("millisecond=" + millisecond);
// // System.out.println("seconds=" + seconds);
// // System.out.println("minutes=" + minutes);
// // System.out.println("hours=" + hours);
// // System.out.println("days=" + days);
// // System.out.println("cal.get(Calendar.DAY_OF_YEAR)=" + cal.get(Calendar.DAY_OF_YEAR));
//
// double totalCountOfDaysInAYear = getTotalCountOfDaysInAYear(year);
// return days / totalCountOfDaysInAYear;
// }
private static double getTotalCountOfDaysInAYear(Integer year) {
boolean leapYear = isLeapYear(year);
double daysInYear = 365d;
@ -117,8 +143,8 @@ public class Progress {
return year % 4 == 0;
}
public static double getYearProgress(AnalogClock analogClock) {
return getYearProgress(
public static double getYearProgress(AnalogClock analogClock, double monthProgress) {
return getYearProgress(monthProgress,
analogClock.yearProperty.getValue(),
analogClock.monthProperty.getValue(),
analogClock.dayProperty.getValue(),

View File

@ -243,7 +243,12 @@ public class Widget extends JPanel implements
paintCloseIcon(brush, getWidth(), mouseOver, mouseOverCloseButton);
if (mouseOver) {
Color currentColor = brush.getColor();
if(visibility.isStronglyColored()) {
brush.setColor(Color.BLUE);
}
brush.drawRect(1, 1, getWidth() - 2, getHeight() - 2);
brush.setColor(currentColor);
}
}

View File

@ -93,7 +93,7 @@ public class ProgressLife extends Widget implements GetProperty {
// }
brush.setFont(SwingUtils.MEDIUM_MONOSPACE_FONT);
brush.drawString(date, SwingUtils.MARGIN, SwingUtils.MARGIN);
brush.drawString(date, SwingUtils.MARGIN, SwingUtils.MARGIN + 5);
brush.drawString(time, SwingUtils.MARGIN,
(int) (2.5 * SwingUtils.MARGIN) + 5);
brush.drawString(typeProperty.getValue(), SwingUtils.MARGIN, 4 * SwingUtils.MARGIN + 5);

View File

@ -64,9 +64,9 @@ public class ProgressMoney extends Widget implements GetProperty {
double value = 0;
switch(WidgetType.valueOf(this.typeProperty.getValue().toUpperCase(
Locale.ROOT))) {
case MINUTE: value = perDay / 8d / 60d * progress.get(WidgetType.MINUTE);break;
case HOUR: value = perDay / 8d * progress.get(WidgetType.HOUR);break;
case DAY: value = perDay * progress.get(WidgetType.DAY);break;
case MINUTE: value = isWeekend ? 0d : perDay / 8d / 60d * progress.get(WidgetType.MINUTE);break;
case HOUR: value = isWeekend ? 0d : perDay / 8d * progress.get(WidgetType.HOUR);break;
case DAY: value = isWeekend ? 0d : perDay * progress.get(WidgetType.DAY);break;
case WEEK: value = perDay * 5d * progress.get(WidgetType.WEEK);break;
case MONTH: value = perMonth * progress.get(WidgetType.MONTH);break;
case YEAR: value = perMonth * 12 * progress.get(WidgetType.YEAR);break;

View File

@ -1034,7 +1034,7 @@ public class MainWindow extends TWindow {
millisecondsRemains);
double minuteProgress =
Progress.getMinuteProgress(secondNow, millisecondNow);
double yearProgress = Progress.getYearProgress(clock);
double yearProgress = Progress.getYearProgress(clock, monthProgress);
progress.set(WidgetType.HOUR, hourProgress);
progress.set(WidgetType.WEEK, weekProgress);
progress.set(WidgetType.MINUTE, minuteProgress);