tutorial org emacs org-mode

tutorial - Seguimiento flexible utilizando Emacs(& org-mode)



org mode vim (1)

Asumiendo que entendí tu problema correctamente, hice una solución rápida. En primer lugar, debe asegurarse de crear solo una entrada de esquema por día, si está ingresando y saliendo varias veces. Defina la siguiente función que calculará las horas extras para un día determinado.

(defun compute-overtime (duration-string) "Computes overtime duration string for the given time DURATION-STRING." (let (minutes-in-a-workday work-minutes overtime-minutes) (defconst minutes-in-a-workday 480) (setq work-minutes (org-duration-string-to-minutes duration-string) overtime-minutes (- work-minutes minutes-in-a-workday)) (if (< overtime-minutes 0) (setq overtime-minutes 0)) (org-minutes-to-hh:mm-string overtime-minutes)))

Luego, use esto en una fórmula de tabla de reloj en el archivo whatnot .

#+BEGIN: clocktable :maxlevel 1 :emphasize nil :scope file :formula "$3=''(compute-overtime $2)::@2$3=string(/"Overtime/")" #+END: clocktable

Pulsa Cc Cc cuando estés en la mesa del reloj para regenerarlo.

Puede obtener el total de horas extras sumando las horas extras usando otra fórmula. Pero, no he resuelto eso.

Entonces, en el trabajo, utilizamos flexitime (flex horas, flexi hours ...), lo cual es bueno, pero puede ser difícil hacer un seguimiento. Actualmente estoy usando org-mode para hacer un seguimiento de mis horas ( org-clock-(out|in) ), pero me gustaría extender eso para calcular automágicamente si he trabajado más de 8 horas (el tiempo sobrante debería ser agregado a mi ''cuenta'' de horario flexible) o menos (dependiendo de cuánto tiempo tome el almuerzo, etc.), el saldo en mi ''cuenta'' de horario flexible y tal.

¿Alguien más usa Emacs para esto?

Actualmente estoy usando una configuración muy básica para seguir mi tiempo:

(defun check-in () (interactive) (let (pbuf (current-buffer)) (find-file (convert-standard-filename "whatnot")) (goto-char (point-max)) (insert "/n") (org-insert-heading) (org-insert-time-stamp (current-time)) (org-clock-in) (save-buffer) (switch-to-buffer pbuf))) (defun check-out () (interactive) (let (pbuf (current-buffer)) (find-file (convert-standard-filename "whatnot")) (goto-char (point-max)) (org-clock-out) (save-buffer) (switch-to-buffer pbuf)))