Encontrou o mesmo mau comportamento no ElCapitan (MacOSX 10.11 ..). Na investigação, viu que os dados de registro de data e hora no arquivo / var / account / acct estavam corretos. Compilando a fonte do lastcomm.c no link
mostrou a mensagem do compilador "aviso: tipos de ponteiro incompatíveis passando 'u_int32_t *' (também conhecido como 'não assinado int *') para o parâmetro do tipo 'const time_t *' (também conhecido como 'const long *')"
O patch a seguir para corrigir o registro de data e hora da má contabilização funcionou para mim no ElCapitan. Pode funcionar para Yosemite (10.10 ..) e antes.
*** lastcomm.c 2016/08/26 19:44:23 1.1 --- lastcomm.c 2016/08/27 00:30:49 1.2 *************** *** 135,138 **** --- 135,140 ---- if (!*argv || requested(argv, &ab)) { + time_t timelong; + timelong = ab.ac_btime; t = expand(ab.ac_utime) + expand(ab.ac_stime); (void)printf( *************** *** 144,148 **** user_from_uid(ab.ac_uid, 0), UT_LINESIZE, UT_LINESIZE, getdev(ab.ac_tty), ! t / (double)AHZ, ctime(&ab.ac_btime)); delta = expand(ab.ac_etime) / (double)AHZ; printf(" (%1.0f:%02.0f:%05.2f)\n", --- 146,150 ---- user_from_uid(ab.ac_uid, 0), UT_LINESIZE, UT_LINESIZE, getdev(ab.ac_tty), ! t / (double)AHZ, ctime(&timelong)); delta = expand(ab.ac_etime) / (double)AHZ; printf(" (%1.0f:%02.0f:%05.2f)\n",