App::JobLog::Command::vacation - controller for vacation dates
version 1.042
houghton@NorthernSpy:~$ job vacation --help job <command> job vacation [-aflrtx] [long options...] [<description>] -l --list show all vacation times recorded -f --flex add sufficient vacation time to complete workday; this is recorded with the "flex" tag -x --fixed a particular period of time during the day that should be marked as vacation; this is in effect a special variety of work time, since it has a definite start and duration -t --tag tag vacation time; e.g., -a yesterday -t float --annual vacation period repeats annually --monthly vacation period repeats monthly -a --add add date or range; e.g., -a "May 17, 1951" -r --remove remove period with given index from list (see --list); e.g., -d 1 --help this usage screen houghton@NorthernSpy:~$ job v --list no vacation times recorded houghton@NorthernSpy:~$ job v --add today job day 1) 2011-03-07 job day houghton@NorthernSpy:~$ job v -a 15 --monthly Ides 1) 15 monthly Ides 2) 2011-03-07 job day houghton@NorthernSpy:~$ job v -a "Feb 13 through 15" --annual Lupercalia Feb 13 -- Feb 15 annual Lupercalia conflicts with existing period 15 monthly Ides at /home/houghton/perl5/lib/perl5/App/JobLog/Command/vacation.pm line 41 1) 15 monthly Ides 2) Feb 13 -- Feb 15 annual Lupercalia 3) 2011-03-07 job day houghton@NorthernSpy:~$ job today Monday, 7 March, 2011 8:01 am - ongoing 2.09 bar, foo something to add; and still more vacation 8.00 job day TOTAL HOURS 10.09 VACATION 8.00 UNTAGGED 8.00 bar 2.09 foo 2.09 houghton@NorthernSpy:~$ job v -l 1) 15 monthly Ides 2) Feb 13 -- Feb 15 annual Lupercalia 3) 2011-03-07 job day houghton@NorthernSpy:~$ job v --remove 3 1) 15 monthly Ides 2) Feb 13 -- Feb 15 annual Lupercalia houghton@NorthernSpy:~$ job t Monday, 7 March, 2011 8:01 am - ongoing 2.09 bar, foo something to add; and still more TOTAL HOURS 2.09 bar 2.09 foo 2.09 houghton@NorthernSpy:~$ job v -a today --flex job day 1) 15 monthly Ides 2) Feb 13 -- Feb 15 annual Lupercalia 3) 2011-03-07 flex job day houghton@NorthernSpy:~$ job t Monday, 7 March, 2011 8:01 am - ongoing 3.07 bar, foo something to add; and still more vacation 4.93 job day TOTAL HOURS 8.00 VACATION 4.93 UNTAGGED 4.93 bar 3.07 foo 3.07
App::JobLog::Command::vacation allows you to include time off in your summaries of work events. In most cases time off -- holidays, vacation, sick days, etc. -- are a completely different entity from work log events. They are the equivalent of a number of hours of work but these hours don't have a defined start or end, they may repeat at predictable intervals, and in some cases their duration is flexible, stretching or shrinking depending on how much actual time you work in the day. On the other hand, sometimes you want to report time off just as you do a regular event, giving it a fixed start and end time and hence duration. Because of the peculiar nature of time off, and because it can overlap regular events in ill-defined ways, vacation time is stored in its own file, .joblog/vacation. This is the least human readable of the files used by App::JobLog, but still it isn't too bad:
houghton@NorthernSpy:~$ cat ~/.joblog/vacation 2011 2 15 0 0 0:2011 2 15 23 59 59:02::Ides 2011 2 13 0 0 0:2011 2 15 23 59 59:01::Lupercalia 2011 3 7 0 0 0:2011 3 7 23 59 59:10::job day
If you wish to understand this format you can look at the code for App::JobLog::Vacation::Period, but in general you should use App::JobLog::Command::vacation to modify this file.
Most time off occurs in a fixed interval of a fixed year. All time off is representable this way. For convenience, though, one may also specify that a period repeats annually or monthly.
Most intervals of time off give you the expected number of work hours per day that would otherwise be a work day. One may also mark a vacation period as fixed or flexible, however. A fixed period behaves in every way like a work event except it doesn't appear in the work log. A flexible vacation period shrinks or expands as needed to fill out the hours to the full complement in the days in which they occur.
When sorted among themselves, monthly intervals sort before annual which sort before fixed. Ordinary events sort before all vacation events except fixed time off, which sorts as an ordinary event.
App::JobLog::Command::today, App::JobLog::Command::summary, App::JobLog::Vacation, App::JobLog::Vacation::Period
David F. Houghton <dfhoughton@gmail.com>
This software is copyright (c) 2011 by David F. Houghton.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install App::JobLog, copy and paste the appropriate command in to your terminal.
cpanm
cpanm App::JobLog
CPAN shell
perl -MCPAN -e shell install App::JobLog
For more information on module installation, please visit the detailed CPAN module installation guide.