Некоторые в комментариях пишут что через остаток отделения решается, но я что-то не понял как. Интересны все способы.
public static void main(String[] args) throws Exception {

       //green 3 min, yellow 1 min, red 1 min

       Scanner scanner = new Scanner(System.in);
       double x = scanner.nextDouble();

       int green = 3, yellow = 1, red = 1;
       int time = 0;

       while (true){
           time += green;
           if (time - 0.00000001 >= x) {
               System.out.println("зелёный");
               break;
           }
           time += yellow;
           if (time - 0.00000001 >= x) {
               System.out.println("желтый");
               break;
           }
           time += red;
           if (time - 0.0000001 >= x) {
               System.out.println("красный");
               break;
           }
       }

   }