Kotlin Date.daysDespués de la function diferente valor de retorno con los mismos arguments

Me he estado preguntando por qué mi código tiene errores, descubrí un posible error.

fun daysAfter(date: Date): Int { Log.d("DayLayout", "date arg - $date") Log.d("DayLayout", "firstDate.time - " + firstDate.time.toString()) val ret = date.daysAfter(firstDate.time).toInt() Log.d("DayLayout", "day after - " + ret) return ret } 

Primera invocación de una function dada

D / DayLayout: date arg – dom ene 08 09:48:57 EST 2017

D / DayLayout: firstDate.time – dom 01 ene 09:49:04 EST 2017

D / Day Lay out: día después – 6

Segunda invocación, algunos segundos después

D / DayLayout: date arg – dom ene 08 09:49:04 EST 2017

D / DayLayout: firstDate.time – dom 01 ene 09:49:04 EST 2017

D / DayLayout: día después – 7

¿Cómo es eso posible? Me falta algo, la function con los mismos arguments debería devolver el mismo valor.

Me falta algo, la function con los mismos arguments debería devolver el mismo valor.

Pero no lo estás llamando con los mismos valores. Lo estás llamando con dos valores diferentes.

Primero, estás comparando estas dos dates:

 date arg - Sun Jan 08 09:48:57 EST 2017 ^^^^^ firstDate.time - Sun Jan 01 09:49:04 EST 2017 

Y luego comparas:

 date arg - Sun Jan 08 09:49:04 EST 2017 ^^^^^ firstDate.time - Sun Jan 01 09:49:04 EST 2017 

Solo mirando los times, parece obvio por qué la primera invocación da una respuesta diferente de la segunda porque hay un número diferente de días entre ellos. Mira los times. En el primero, tiene 6 días, 23 horas y 53 segundos desde el firstDate . En el segundo, tienes exactamente 7 días.

  • Dagger2 no puede acceder a las anulaciones. javax.annotation.Nullable not found
  • ¿Cómo get la class Java del param del método genérico?
  • Kotlin: los generics reificados no parecen funcionar bien para comparaciones hash / iguales
  • Escribir en el file después del partido en Kotlin
  • La class Kotlin Custom View implementa una interfaz que no se puede resolver en `: app: compileDebugKotlinAfterJava`. La versión idéntica de Java funciona bien
  • plugin gradle con kotlin - establece propiedad de extensión booleana
  • Obtuvo NoClassDefFoundError al pasar el map de lambda
  • Ejecute testings junit escritas en Kotlin con la anotación @category
  • ¿Cómo usar MapBuilder en kotlin y agregar todos los valores?
  • ¿Por qué Kotlin usa el modificador del operador fuera de la sobrecarga del operador?
  • ¿Cómo crear una instancia de interfaz anónima en Kotlin?