Dart:
Cálculo de una fecha en el futuro o pasado
Cómo hacerlo:
Dart proporciona un soporte robusto para la manipulación de fechas a través de su clase DateTime
. Aquí te mostramos cómo puedes calcular fechas futuras o pasadas usando Dart nativo, sin necesidad de librerías de terceros.
Calcular una Fecha Futura
Para calcular una fecha en el futuro, creas un objeto DateTime
y usas el método add
con la duración deseada.
DateTime hoy = DateTime.now();
Duration diezDias = Duration(days: 10);
DateTime fechaFutura = hoy.add(diezDias);
print(fechaFutura); // Salida: 2023-04-21 14:22:35.123456 (salida de ejemplo, depende de la fecha y hora actuales)
Calcular una Fecha Pasada
Para calcular una fecha en el pasado, usas el método subtract
en un objeto DateTime
con la duración necesaria.
DateTime hoy = DateTime.now();
Duration quinceDiasAtras = Duration(days: 15);
DateTime fechaPasada = hoy.subtract(quinceDiasAtras);
print(fechaPasada); // Salida: 2023-03-27 14:22:35.123456 (salida de ejemplo, depende de la fecha y hora actuales)
Usar Librerías de Terceros
Aunque las capacidades nativas de Dart para la manipulación de fechas son poderosas, podrías encontrarte necesitando operaciones más específicas, como parsear o formatear fechas más fácilmente, o realizar cálculos complejos. En tales casos, el paquete time
puede ser muy útil.
Primero, añade time
a tus dependencias en pubspec.yaml
:
dependencies:
time: ^2.0.0
Luego, puedes usarlo para realizar cálculos similares con una legibilidad mejorada:
import 'package:time/time.dart';
void main() {
DateTime hoy = DateTime.now();
// Calcular una fecha futura
DateTime fechaFutura = hoy + 10.days;
print(fechaFutura); // Formato de salida: 2023-04-21 14:22:35.123456
// Calcular una fecha pasada
DateTime fechaPasada = hoy - 15.days;
print(fechaPasada); // Formato de salida: 2023-03-27 14:22:35.123456
}
Estos ejemplos ilustran manipulaciones básicas de fechas en Dart, incluyendo la adición y sustracción de tiempo a o desde una fecha actual, demostrando lo fácil que pueden ser gestionadas las fechas en aplicaciones Dart.