34 lines
969 B
Dart
34 lines
969 B
Dart
|
import 'package:flutter/material.dart';
|
||
|
import 'package:lamiter/Extension/build_context.dart';
|
||
|
|
||
|
class TimeDifferenceDisplay extends StatelessWidget {
|
||
|
final DateTime time;
|
||
|
|
||
|
const TimeDifferenceDisplay({required this.time});
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
Duration difference = DateTime.now().difference(time);
|
||
|
int year = (difference.inDays / 365).floor();
|
||
|
int month = (difference.inDays / 30).floor();
|
||
|
int day = difference.inDays;
|
||
|
int hour = difference.inHours;
|
||
|
int minute = difference.inMinutes != 0 ? difference.inMinutes : 1;
|
||
|
|
||
|
return Text(
|
||
|
(year != 0)
|
||
|
? '${year}y'
|
||
|
: (month != 0)
|
||
|
? '${month}mo'
|
||
|
: (day != 0)
|
||
|
? '$day天'
|
||
|
: (hour != 0)
|
||
|
? '$hour小時'
|
||
|
: '$minute分',
|
||
|
style: context.lS!.copyWith(
|
||
|
color: context.inverseSurface.withOpacity(0.35),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|