import 'package:app_settings/app_settings.dart'; import 'package:fast/view/component/alert_widget.dart'; import 'package:flutter/material.dart'; class Util { Size boundingTextSize(String text, TextStyle style, {int maxLines = 2 ^ 31, double maxWidth = double.infinity}) { TextPainter textPainter = TextPainter( textDirection: TextDirection.ltr, text: TextSpan(text: text, style: style), maxLines: maxLines) ..layout(maxWidth: maxWidth); return textPainter.size; } int getYearFromTimenum(int num) { String dayNum = num.toString(); return int.parse(dayNum.substring(0, 4)); } int getMonthFromTimenum(int num) { String dayNum = num.toString(); return int.parse(dayNum.substring(4, 6)); } int getDayFromTimenum(int num) { String dayNum = num.toString(); return int.parse(dayNum.substring(6, 8)); } String checkFormateDate(DateTime date,DateTime now){ if (date.day == now.day){ return '今天'+ date.hour.toString().padLeft(2,'0')+':'+date.minute.toString().padLeft(2,'0'); } DateTime yesterday = DateTime.fromMillisecondsSinceEpoch(now.millisecondsSinceEpoch-24*3600*1000); if (date.day==yesterday.day){ return '昨天'+ date.hour.toString().padLeft(2,'0')+':'+date.minute.toString().padLeft(2,'0'); } DateTime tomorrow = DateTime.fromMillisecondsSinceEpoch(now.millisecondsSinceEpoch+24*3600*1000); if (date.day==tomorrow.day){ return '明天'+ date.hour.toString().padLeft(2,'0')+':'+date.minute.toString().padLeft(2,'0'); } return date.month.toString().padLeft(2,'0')+'月'+date.day.toString().padLeft(2,'0')+'日 '+ date.hour.toString().padLeft(2,'0')+':'+date.minute.toString().padLeft(2,'0'); } String betweenTime(DateTime start,DateTime end){ int seconds = (end.millisecondsSinceEpoch-start.millisecondsSinceEpoch)~/1000; // int hours = seconds~/3600; // int minutes = seconds%3600~/60; // String str = ''; // if (hours>0){ // str = hours.toString()+'小时'; // } // if (minutes>0){ // str = str+minutes.toString()+'分钟'; // } return betweenTimeBySeconds(seconds); } String betweenTimeBySeconds(int seconds){ int hours = seconds~/3600; int minutes = seconds%3600~/60; String str = ''; if (hours>0){ str = hours.toString()+'小时'; } if (minutes>0){ str = str+minutes.toString()+'分钟'; } return str; } void showNotificationStatus(BuildContext context) { showDialog( context: context, barrierDismissible: false, barrierColor: const Color(0xF2000D1F), builder: (BuildContext context) { return AlertWidget( title: '为了您的计时能得到及时提醒\n请开启fast16cc为你提供的消息通知推送', confirm: '去开启', confirmCallback: () { AppSettings.openNotificationSettings(); Navigator.of(context).pop(); }); }); } }