77 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
public class Date {
 | 
						|
    // #region Fields
 | 
						|
    private int day;
 | 
						|
    private int month;
 | 
						|
    private int year;
 | 
						|
    private int hour;
 | 
						|
    private int minute;
 | 
						|
 | 
						|
    // #region Constructor
 | 
						|
    public Date(int day, int month, int year, int hour, int minute) {
 | 
						|
        this.day = day;
 | 
						|
        this.month = month;
 | 
						|
        this.year = year;
 | 
						|
        this.hour = hour;
 | 
						|
        this.minute = minute;
 | 
						|
 | 
						|
        // Automatically adjust for Switzerland time after initialization
 | 
						|
        adjustForSwitzerlandTime();
 | 
						|
    }
 | 
						|
 | 
						|
    // #region Getters
 | 
						|
    public int getDay() {
 | 
						|
        return day;
 | 
						|
    }
 | 
						|
 | 
						|
    public int getMonth() {
 | 
						|
        return month;
 | 
						|
    }
 | 
						|
 | 
						|
    public int getYear() {
 | 
						|
        return year;
 | 
						|
    }
 | 
						|
 | 
						|
    public int getHour() {
 | 
						|
        return hour;
 | 
						|
    }
 | 
						|
 | 
						|
    public int getMinute() {
 | 
						|
        return minute;
 | 
						|
    }
 | 
						|
 | 
						|
    // #region Adjust UTC to Switzerland Time
 | 
						|
    private void adjustForSwitzerlandTime() {
 | 
						|
        hour += 1;
 | 
						|
 | 
						|
        // Adjust if the hour exceeds 24 or falls below 0
 | 
						|
        if (hour >= 24) {
 | 
						|
            hour -= 24;
 | 
						|
            day++;
 | 
						|
            if (day > 31) { // Simple month/day rollover, could be more sophisticated
 | 
						|
                day = 1;
 | 
						|
                month++;
 | 
						|
                if (month > 12) {
 | 
						|
                    month = 1;
 | 
						|
                    year++;
 | 
						|
                }
 | 
						|
            }
 | 
						|
        } else if (hour < 0) {
 | 
						|
            hour += 24;
 | 
						|
            day--;
 | 
						|
            if (day < 1) {
 | 
						|
                month--;
 | 
						|
                if (month < 1) {
 | 
						|
                    month = 12;
 | 
						|
                    year--;
 | 
						|
                }
 | 
						|
                day = 31; // Simple month/day rollover, could be more sophisticated
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    // #region toString Override
 | 
						|
    @Override
 | 
						|
    public String toString() {
 | 
						|
        return String.format("%04d-%02d-%02d %02d:%02d", year, month, day, hour, minute);
 | 
						|
    }
 | 
						|
}
 |