
% datumsrechner_manuell.m
% 3.6: Graphische Benutzeroberfläche
%      Beispiel für manuell programmiertes GUI: Datums-Rechner

% Fenster und Titel

h0 = figure(...                                  % Fenster-Einstellungen
    'Units','pixels',...
    'Position',[401 521 370 101],...
    'Color',[0.847 0.816 0.784],...
    'Name','Datums-Rechner (GUI manuell)', ...   % Titelzeile des Fensters
    'NumberTitle','off', ...                     % Kein "Figure" in Titelzeile
    'MenuBar','none');                           % Kein Menü

% Initialisierung

TageListe = {'Sonntag.', 'Montag.', 'Dienstag.', 'Mittwoch.', ...
             'Donnerstag.', 'Freitag.', 'Samstag.'};
[Jahr, Monat, TagNr] = datevec (now);
Wochentag = TageListe (weekday (now));

% Eingabefelder

h1 = uicontrol('Parent',h0, ...                  % Textfeld "Der"
    'Style','text', ...
    'Units','pixels',...
    'Position',[5 18 31 21],...
    'FontSize',10,...
    'String','Der');

h1 = uicontrol('Parent',h0, ...                  % Eingabefeld TagNr
    'Style','edit', ...
    'Units','pixels', ...
    'Position',[39 17 25 24], ...
    'BackgroundColor',[1 1 1], ...
    'FontSize',10,...
    'String',num2str(TagNr), ...                 % Vorbelegung
    'Tag','TagNr');                                % Objekt-Identifikation

h1 = uicontrol('Parent',h0, ...                  % Textfeld "."
    'Style','text', ...
    'Units','pixels', ...
    'Position',[67 18 11 21], ...
    'FontSize',10,...
    'String','.');

h1 = uicontrol('Parent',h0, ...                  % Popup-Menü Monat
    'Style','popupmenu', ...
    'Units','pixels', ...
    'Position',[80 18 101 23], ...
    'BackgroundColor',[1 1 1], ...
    'FontSize',10,...
    'String',{'Januar','Februar','März','April','Mai','Juni', ...
              'Juli','August','September','Oktober','November','Dezember'}, ...
    'Tag','Monat', ...                           % Objekt-Identifikation
    'Value',Monat);                              % Vorbelegung

h1 = uicontrol('Parent',h0, ...                  % Eingabefeld Jahr
    'Style','edit', ...
    'Units','pixels', ...
    'Position',[190 17 41 24], ...
    'BackgroundColor',[1 1 1], ...
    'FontSize',10,...
    'String',num2str(Jahr), ...                  % Vorbelegung
    'Tag','Jahr');                               % Objekt-Identifikation

h1 = uicontrol('Parent',h0, ...                  % Textfeld "ist ein"
    'Style','text', ...
    'Units','pixels', ...
    'Position',[236 18 41 21], ...
    'FontSize',10,...
    'String','ist ein');

h1 = uicontrol('Parent',h0, ...                  % Textfeld Wochentag (Ausgabe)
    'Style','text', ...
    'BackgroundColor',[0.914 0.894 0.878],...
    'Units','pixels', ...
    'Position',[280 18 81 21], ...
    'FontSize',10,...
    'String',Wochentag, ...                      % Vorbelegung
    'Tag','Wochentag');                          % Objekt-Identifikation

% Berechnung

h1 = uicontrol('Parent',h0, ...                  % Push-Button "Wochentag berechnen"
    'Style','pushbutton', ...
    'Units','pixels', ...
    'Position',[40 60 191 26], ...
    'FontSize',10,...
    'String','Wochentag berechnen', ...
    'Callback', ['TagNr = str2num (get (findobj (''Tag'',''TagNr''), ''String''));', ...        % Liest TagNr
                 'Monat =          get (findobj (''Tag'',''Monat''), ''Value'');', ...          % Liest Monat
                 'Jahr  = str2num (get (findobj (''Tag'',''Jahr''), ''String''));', ...         % Liest Jahr
                 'Wochentag = weekday (datenum (Jahr, Monat, TagNr));', ...                     % Berechne Wochentag
                 'set (findobj (''Tag'',''Wochentag''), ''String'', TageListe (Wochentag));']); % Gibt Wochentag aus

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
