java红绿灯,大神求解!!!!!!!

红灯 20s
绿灯 15s
黄灯 3s
灯的顺序: 红,黄,绿,黄,红

例如: 输入 红灯对应的时间是 13:32:00
输出 黄灯亮了 13:32:20
绿灯亮了 13:32:23
黄灯亮了 13:32:35
红灯亮了 13:32:38

int green = 15;
int red = 20;
int yellow = 3;

while(true){
for(int m = 1; m < 41; m++){
if(m <= red){
//红灯亮
sleep(1000);
}else if(yellow+m-red >= 0){
//黄灯亮
sleep(1000);
}else if(green+m-yellow-red >= 0){
//绿灯亮
sleep(1000);
}else{
//黄灯亮
sleep(1000);
}
}
}

灯的顺序: 红,黄,绿,黄,红
控制顺序,就用线程控制sleep

http://blog.csdn.net/zwyjg/article/details/8947209

41换成38,应该没问题