首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Flutter-出生日期计算年龄工具类

Flutter-出生日期计算年龄工具类

原创
作者头像
徐建国
修改2021-08-04 14:17:19
修改2021-08-04 14:17:19
1.8K0
举报
文章被收录于专栏:个人路线个人路线

今天接到的任务需求是将生日读取出来,转换成年龄,最后判断是00后还是90后

于是花了点时间写了这个工具类

代码语言:dart
复制
//转化年龄工具类
class AgeByBirthUtils {
  static String getAge(DateTime brt){
    int age = 0;
    DateTime dateTime = DateTime.now();
    if (dateTime.isBofore(brt)) { //出生日期晚于当前时间,无法计算
      return '出生日期不正确';
    }
    int yearNow = dateTime.year;  //当前年份
    int monthNow = dateTime.month;  //当前月份
    int dayOfMonthNow = dateTime.day; //当前日期
​
    int yearBirth = brt.year;
    int monthBirth = brt.month;
    int dayOfMonthBirth = brt.day;
    age = yearNow - yearBirth;   //计算整岁数
    if (monthNow <= monthBirth) {
      if (monthNow == monthBirth) {
        if (dayOfMonthNow < dayOfMonthBirth) age--;//当前日期在生日之前,年龄减一
      } else {
        age--;//当前月份在生日之前,年龄减一
      }
    }
    return age.toString();
  }
}

网址:https://dartpad.cn/?null_safety=true

这里用到两个方法

  • 时间比较---在之前 isBefore(date)
  • 时间比较---在之后 isAfter(date)

使用:

代码语言:javascript
复制
void main() {
  
  var d1 = DateTime.parse('2006-10-10 09:30:36'); 
​
 
    print(AgeByBirthUtils.getAge(d1));
​
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档