flutter 几秒前, 几分钟前, 几小时前, 几天前...

Show me the code!!!

class RelativeDateFormat {static final num ONE_MINUTE = 60000;static final num ONE_HOUR = 3600000;static final num ONE_DAY = 86400000;static final num ONE_WEEK = 604800000;static final String ONE_SECOND_AGO = "秒前";static final String ONE_MINUTE_AGO = "分钟前";static final String ONE_HOUR_AGO = "小时前";static final String ONE_DAY_AGO = "天前";static final String ONE_MONTH_AGO = "月前";static final String ONE_YEAR_AGO = "年前";//时间转换static String format(DateTime date) {num delta = DateTime.now().millisecondsSinceEpoch - date.millisecondsSinceEpoch;if (delta < 1 * ONE_MINUTE) {num seconds = toSeconds(delta);return (seconds <= 0 ? 1 : seconds).toInt().toString() + ONE_SECOND_AGO;}if (delta < 45 * ONE_MINUTE) {num minutes = toMinutes(delta);return (minutes <= 0 ? 1 : minutes).toInt().toString() + ONE_MINUTE_AGO;}if (delta < 24 * ONE_HOUR) {num hours = toHours(delta);return (hours <= 0 ? 1 : hours).toInt().toString() + ONE_HOUR_AGO;}if (delta < 48 * ONE_HOUR) {return "昨天";}if (delta < 30 * ONE_DAY) {num days = toDays(delta);return (days <= 0 ? 1 : days).toInt().toString() + ONE_DAY_AGO;}if (delta < 12 * 4 * ONE_WEEK) {num months = toMonths(delta);return (months <= 0 ? 1 : months).toInt().toString() + ONE_MONTH_AGO;} else {num years = toYears(delta);return (years <= 0 ? 1 : years).toInt().toString() + ONE_YEAR_AGO;}}static num toSeconds(num date) {return date / 1000;}static num toMinutes(num date) {return toSeconds(date) / 60;}static num toHours(num date) {return toMinutes(date) / 60;}static num toDays(num date) {return toHours(date) / 24;}static num toMonths(num date) {return toDays(date) / 30;}static num toYears(num date) {return toMonths(date) / 365;}
}复制代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251729.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CMake 使用笔记

记录 CMake 相关知识。 Prelude&#xff1a;读文档一定要有耐心&#xff01; 问题一 CLion&#xff1a; CMakeLists.txt 中 set(CMAKE_CXX_FLAGS -Wall) 不起作用 Solution: 改用 target_compile_options(main PUBLIC -Wall) Reference:target_compile_optionsGCC: Options to …

Docker 完全指南

Docker 最初 dotCloud 公司内部的一个业余项目Docker 基于 Go 语言Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案Docker 的基础是 Linux 容器&#xff08;LXC&#xff09;等技术Docker 容器的启动可以在秒级实现&#xff0c;这相比传统的虚拟机方式要快得多Docker 对…

NOIP 2016【蚯蚓】

好吧&#xff0c;我承认我是个智障…… 这道题一眼看上去就是个堆&#xff0c;然而实际上有单调性。 注意到&#xff0c;如果 \(q 0\) 的话&#xff0c;将蚯蚓的左右两边分开丢进两个队列中&#xff0c;则两个队列都是单调不增的&#xff0c;因为每次取出的蚯蚓长度单调不增。…

Ajax异步(客户端测试)

客户端测试&#xff1a;GET方法实现Ajax异步 var request new XMLHttpRequest(); request.open("GET","sever.php?number" document.getElementById("keyword").value); request.send(); request.onreadystatechange function(){ if(request.…

VS 添加文件添加文件成链接

转载于:https://www.cnblogs.com/wsxkit/p/10907585.html

设计模式——3.观察者模式

观察者模式&#xff08;Observer&#xff09; 观察者模式&#xff08;Observer&#xff09;简介&#xff1a; 定义一个一对多的依赖关系&#xff0c;让多个观察者对象监听某个主题对象&#xff0c;当主题对象的状态发生改变时&#xff0c;主题对象则通知所有的观察者对象&#…

Android 长按照片保存 工具类

2019独角兽企业重金招聘Python工程师标准>>> public class ImgUtils {public static void saveImageToGallery(Context context, Bitmap bmp) {final String[] items new String[] { "保存图片"};//图片转成Bitmap数组final Bitmap[] bitmap new Bitmap…

反爬机制

一.通过headers反爬虫&#xff1a; Basic Auth这是一种古老的、不安全的用户验证方式&#xff0c;一般会有用户授权的限制&#xff0c;会在headers的Autheration字段里要求加入用户名密码(明文)&#xff0c;如果验证失败则请求就会失败&#xff0c;现在这种认证方式正在被淘汰。…

knockout + easyui = koeasyui

在做后台管理系统的同学们&#xff0c;是否有用easyui的经历。虽然现在都是vue、ng、react的时代。但easyui&#xff08;也就是jquery为基础&#xff09;还是占有一席之地的。因为他对后端开发者太友好了&#xff0c;太熟悉不过了。要让一个后端开发者来理解vue或者是react的VN…

轻量社交APP系统ThinkSNS 简 权威发布 限时惠购

2019独角兽企业重金招聘Python工程师标准>>> 伴随国内外创业风潮、AI、区块链等互联网软件科技领域的高速发展&#xff0c;2019年&#xff0c;ThinkSNS软件品牌迎来十周年后的新纪元。作为下一个阶段的产品元年&#xff0c;官方于2019年5月正式发售轻量核心社交APP系…

linux下安装oracle sqlplus以及imp、exp工具

一、下载oracle 11g sqlplus软件 linux 64位操作系统&#xff0c;oracle安装包地址 http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm  oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_6…

在operator =中要处理“自我赋值”

防止自我赋值很有必要 Widget w; w w; a[i] a[j]; //a[i]和a[j]实际上指向同一个元素 *pi *pj; //pi和pj实际上指向同一个元素 自我赋值的危害&#xff1a; Widget { private:Test *p; }; Widget &Widget::operator(const Widget &w) {delete p;p new int (*w.p);r…

新添加磁盘分区后,找不到新分区

问题&#xff1a;在Vcent中扩容磁盘容量&#xff0c;登录虚拟机fdisk /dev/sda分区后&#xff0c;找不到新分区。 lsblk或者 df -TH fdisk /dev/sda p 尝试解决办法&#xff1a; cd /sys/class/scsi_host/ ls echo "- - -" > /sys/class/scsi_host/host0/scan (中…

Linux一些指令

备忘。。 ~/.bashrc 环境变量文件 xshell5 与本机文件传输 rz接受 sz filename 传输 watch -n 2 nvidia-smi 监视gpu 状态wget 下载单个文件wget http://images.cocodataset.org/zips/train2014.zip给.sh文件添加x执行权限 比如以hello.sh文件为例&#xff0c;chmod ux hello…

C# 通过反射获取方法/类上的自定义特性

1.所有自定义属性都必须继承System.Attribute 2.自定义属性的类名称必须为 XXXXAttribute 即是已Attribute结尾 自定义属性QuickWebApi [AttributeUsage(AttributeTargets.Method, Inherited false, AllowMultiple true)]public class QuickWebApiAttribute: Attribute{publ…

Spring Cloud Zuul网关(快速搭建)

zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。 在云平台上提供动态路由&#xff0c;监控&#xff0c;弹性&#xff0c;安全等边缘服务的框架。相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。主要功能是路由转发和过滤器。 Zuul可…

10.13 上午 考试

T1 直接二分就好了 #include <cstdio> #include <cstring> #include <iostream> #include <cmath> #include <cstdlib> #include <algorithm> #define ll long long #define mem(a,b) memset(a,b,sizeof(a)) using namespace std;ll n; in…

前端安全之token

前端可以通过cookie以js的方式存取token&#xff0c;并且实现用户的登录登出以及token的超时操作&#xff0c;但这样做并不安全&#xff0c;无法避免跨站脚本的攻击&#xff0c;如果对项目的安全性要求比较高&#xff0c;应该在服务端开启http only为true&#xff0c;通过服务端…

gbk 转 UTF-8

iconv命令 gbk 转 UTF-8 -----linux gbk 转 UTF-8-------- iconv 用法 iconv -f "gbk" -t "utf-8" < infile > outfile 或者 piconv -f "gbk" -t "utf-8" < infile > outfile iconv -f utf-8 -t GBK 123456.txt 对传文件…

Mybatis中输入输出映射和动态Sql

一、输入映射我们通过配置parameterType的值来指定输入参数的类型&#xff0c;这些类型可以是简单数据类型、POJO、HashMap等数据类型1、简单类型2、POJO包装类型①这是单表查询的时候传入的POJO包装类型&#xff0c;即可以直接传入实体类&#xff0c;但是当多表查询的时候&…