0

I have a method to return the current date by using the Calendar like this:

    Calendar calendar = Calendar.getInstance();
    dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
    dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
    month = calendar.get(Calendar.MONTH);
    year = calendar.get(Calendar.YEAR);

On the other hand, I have a DatePickerDialog which I need to update the previous values.

private void launchDatePicker() {
    final Calendar calendar = Calendar.getInstance();
    int nuevoDia = calendar.get(Calendar.DAY_OF_MONTH);
    int nuevoDiaSemana = calendar.get(Calendar.DAY_OF_WEEK);
    int nuevoMes = calendar.get(Calendar.MONTH);
    int nuevoAño = calendar.get(Calendar.YEAR);

    DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int nuevoAño, int nuevoMes, int nuevoDia) {
            //int nuevoDiaSemana = calendar.get(Calendar.DAY_OF_WEEK);
            dayOfMonth = nuevoDia;
            month = nuevoMes;
            year = nuevoAño;
            fechaActual(dayOfWeek, dayOfMonth,month);
            ajustarFormatoFecha();
            readFromDichos();
            faseLunar();


        }
    }
    ,nuevoDia,nuevoMes,nuevoAño);
    datePickerDialog.show();
}

The problem is that this DatePicker always starts in year = 1900. How can I start it in the current date?

How can I get DayOfTheWeek by using the DatePickerDialog?

Jason Aller
  • 3,541
  • 28
  • 38
  • 38
Thony
  • 83
  • 6

2 Answers2

0

You are passing wrong argument to DatePickerDialog as

nuevoDia,nuevoMes,nuevoAño

It should be: nuevoAño, nuevoMes, nuevoDia

You can do something like :

private void launchDatePicker() {
    Calendar c = Calendar.getInstance();
    int mYear = c.get(Calendar.YEAR); 
    int mMonth = c.get(Calendar.MONTH);
    int mDay = c.get(Calendar.DAY_OF_MONTH);

    DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int nuevoAño, int nuevoMes, int nuevoDia) {
            //int nuevoDiaSemana = calendar.get(Calendar.DAY_OF_WEEK);
            dayOfMonth = nuevoDia;
            month = nuevoMes;
            year = nuevoAño;
            fechaActual(dayOfWeek, dayOfMonth,month);
            ajustarFormatoFecha();
            readFromDichos();
            faseLunar();


        }
    }
    , nuevoAño, nuevoMes, nuevoDia); // <----- correct arguments ------
    datePickerDialog.show();
}
Waqar UlHaq
  • 6,144
  • 2
  • 34
  • 42
  • Thanks Waqar. I'll try. Btw, do you know how can I get DAYOFWEEK from the datePicker? – Thony Feb 29 '20 at 13:08
  • @Toni I hope you are looking something similar like this and I hope it works otherwise let me know :) https://stackoverflow.com/a/13966902/1868841 – Waqar UlHaq Feb 29 '20 at 13:20
  • Thanks Waqar but even tho it seems to be deprecated, it returns an String of the day name in the language of my Android system wich its not usefull for me since I need the int between 1 and 7 so I can determinate in any language. – Thony Feb 29 '20 at 15:56
0

FYI:

private void launchDatePicker() {
    final Calendar calendar = Calendar.getInstance();
    int nuevoDia = calendar.get(Calendar.DAY_OF_MONTH);
    int nuevoMes = calendar.get(Calendar.MONTH);
    int nuevoAño = calendar.get(Calendar.YEAR);

    DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int nuevoAño, int nuevoMes, int nuevoDia) {
            //int nuevoDiaSemana = calendar.get(Calendar.DAY_OF_WEEK);
            dayOfMonth = nuevoDia;
            month = nuevoMes;
            year = nuevoAño;
            Calendar c = calendar.getInstance();
            c.set(year,month,dayOfMonth);
            int nuevoDiaSemana = c.get(Calendar.DAY_OF_WEEK);
            dayOfWeek = nuevoDiaSemana;
            fechaActual(dayOfWeek, dayOfMonth,month);
            ajustarFormatoFecha();
            readFromDichos();
            faseLunar();
        }
    }
    ,nuevoAño,nuevoMes,nuevoDia);
    datePickerDialog.show();
}
Thony
  • 83
  • 6