Java Nanotimeで等間隔

public static void main(String[] args) {
int minimal = 1; //カウンタ最小分解能
int clock = 400; //クリック間隔

long before = System.nanoTime();
long now;

for (int i = 0; i < 3000; i++) {
    try {
        Thread.sleep(minimal);
    } catch (Exception e) {
        e.printStackTrace();
    }
    now = System.nanoTime();
    if((now - before) > clock * 1000 * 1000){
        //クリック
        System.out.println("click : " + now/1000/1000);
        before = now - ((now - before) - clock * 1000 * 1000);
    }
}
}