Skip to content

Instantly share code, notes, and snippets.

@dsturm
Last active May 4, 2017 12:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dsturm/d96c682adb25939df34154bbd0b29bf1 to your computer and use it in GitHub Desktop.
Save dsturm/d96c682adb25939df34154bbd0b29bf1 to your computer and use it in GitHub Desktop.
Adobe AfterEffects
/**
* Expression for displaying up- or countdowns
* @credits to https://forums.adobe.com/thread/2191716
*/
rate = 1;
direction = 'down';
type = 'full';
clockStart = 0;
function padZero(n) {
return n < 10 ? "0" + n : "" + n;
}
clockTime = clockStart + rate * (time - ('down' === direction ? outPoint : inPoint));
sign = "";
if (clockTime < 0) {
if ('down' !== direction) {
sign = "-";
}
clockTime = -clockTime;
}
t = Math.floor(clockTime);
hr = Math.floor(t/3600);
min = Math.floor((t%3600)/60);
sec = Math.floor(t%60);
ms = clockTime.toFixed(3).substr(-3);
switch (type) {
case 'full' :
case 'hh:mm:ss:ms' :
sign + padZero(hr) + ":" + padZero(min) + ":" + padZero(sec) + ":" + ms;
break;
case 'hh:mm:ss' :
sign + padZero(hr) + ":" + padZero(min) + ":" + padZero(sec);
break;
case 'hh' :
sign + padZero(hr);
break;
case 'mm:ss' :
min = (hr * 60) + min;
sign + padZero(min) + ":" + padZero(sec);
break;
case 'mm' :
min = (hr * 60) + min;
case 'xx:mm:xx' :
case 'mm_digets' :
sign + padZero(min);
break;
case 'ss' :
sec = (hr * 3600) + (min * 60) + sec;
case 'xx:xx:ss' :
case 'ss_digets' :
sign + padZero(sec);
break;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment