Erro desconhecido no valor de sentinela (while)

Olá!
Estou fazendo um exercicio do Java.
Não estou consiguindo reconhecer o erro de sentinela.

Segue o código:

main.java
import java.util.Scanner;
public class Main {

    /**
     * @param args the command line arguments
     */
    private String courseNome;
    private int quilomentros;
    private int gasolina;
    private int total1;
    private int total2;
    private int total;

    //construtor que inicializa os nomes dos motoristas
    public Main(String nome)
    {

        courseNome = nome;
    }

    //configura o nome dos motoristas
    public void setCourseName(String nome)
    {

        courseNome = nome;

    }

    //retorna os nomes dos motoristas
    public String getCourseName()
    {
        return courseNome;
    }
    public void determineClassQuilomentro()
    {

        //cria objeto Scanner para obter dados a partir da janela de comando
        Scanner input = new Scanner(System.in);

        int quilomentros; //quilomentros dirigidos
        int total1;
        //fase de inicialização
        quilomentros = 0;
        total1 = 0;

        //fase de processamento
        //solicita a entrada e le as notas do usuário
        System.out.println("Digite a quantidade de quilomentros dirigidos, ou -1 para sair do sistema: \n");
        quilomentros = input.nextInt();

        //faz um loop até o usuário inserir o valor de sentinela inserido pelo usuário
        while(quilomentros != -1)
        {
            total1 = total1 + quilomentros; //adciona quilomentros a total
            quilomentros++;
            
        }

    }

    public void determineClassGasolina()
    {
        //cria objeto Scanner para obter dados a partir da janela de comando
        Scanner input = new Scanner(System.in);

        int gasolina;
        int total2;

        gasolina = 0;
        total2 = 0;

        System.out.println("Digite a quantidade de quilomentros dirigidos, ou -1 para sair do sistema:\n ");
        gasolina = input.nextInt();

        while(gasolina != -1)
        {
            total2 = total2 + gasolina; //adciona quilomentros a total
            gasolina++;
            //solicita a entrada e lê a proxima nota inserida pelo usuário
            System.out.println("Digite a quantidade de gasolinas consumidos, ou -1 para sair do sistema:\n ");
            gasolina = input.nextInt();
        }


    }

    //método para calcular os quilomentros dirigidos e gasolinas consumidos
    public void determineClassCalc()
    {
        total = total1 + total2;
        System.out.printf("Total: %f\n",total);

    }
    //método para exiber o nome do motorista
    public void displayMessage()
    {

     System.out.printf("Seu nome: %d\n",getCourseName());

    }

}

exericio.java
public class ex {

    //inicialização do programa
    public static void main(String args[])
    {
        //cria objeto GradeBook para chamar seus respectivos valores
        Main myMain = new Main("Joao");

        myMain.determineClassQuilomentro();
        myMain.determineClassGasolina();
        myMain.displayMessage();

    }

}

Qual erro que dá? Posta o erro também ^^

Segue o erro:

Exception in thread “main” java.util.IllegalFormatConversionException: d != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:3999)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2709)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2661)
at java.util.Formatter.format(Formatter.java:2433)
at java.io.PrintStream.format(PrintStream.java:920)
at java.io.PrintStream.printf(PrintStream.java:821)
at exercicio.Main.displayMessage(Main.java:110)
at exercicio.ex.main(ex.java:22)
Seu nome: Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 4 segundos)

O erro se encontra no trecho:

public void displayMessage() { System.out.printf("Seu nome: %d\n",getCourseName()); }

“%d” refere-se à um inteiro, e o parâmetro que você está passando é uma String. Para resolver o problema:

public void displayMessage() { System.out.printf("Seu nome: %s\n",getCourseName()); }

printf(String format, Object… args)
Formatter Syntax

Oi!
Consigui resolver o problema, porém, outro problema me surgiu: Eu vou colocando os números quilomentros dirigidos, depois do nada vem perguntando os numeros de gasolinas consumidos, sem eu apertar -1. O certo seria digitar primeiro os quilomentros, depois que eu parei de digitar eu apertar -1 e depois pedir o de gasolina.