flutter 获取今天 昨天 上周 这周 上月 这月

工具类直接用就行. 依赖 intl: ^0.16.1


import 'package:flutter/cupertino.dart';
import 'package:intl/intl.dart';

String formatWeek(DateTime time){

  var format = DateFormat('yyyy.MM.dd (EEE)','zh_CN');
  return format.format(time).replaceFirst("周","");

}
///获取这个月1号到今天
String getThisTime() {
  return DateTime.now().year.toString() +
      "." +
      DateTime.now().month.toString() +
      "." +
      "1" +
      "-" +
      DateTime.now().year.toString() +
      "." +
      DateTime.now().month.toString() +
      "." +
      DateTime.now().day.toString();
}
///日期点确定后返回数据
String retureDate(String data) {
  print("year" + data);
  String year = data.substring(0, 4);
  String month = data.substring(5, 7);
  String day = data.substring(8, 10);
  print('startDate=$year,$month,$day');
  return year + "." + month + "." + day;
}

String calendarManager(int pos) {
  var formater = DateFormat('yyyy.MM.dd');
  DateTime now = DateTime.now(); //2021.8.24   获取今天的日期

  String today = formater.format(DateTime.now()); //2021.8.24   获取今天的日期
  String year = today.substring(0, 4); //2021 今年
  String month = today.substring(5, 7); //08  这个月
// String day=today.substring(8,10);//24  今天
  int nowyear = DateTime.now().year; //今年
  int nowmonth = DateTime.now().month; //这个月是几月
  print("month="+nowmonth.toString());
  int nowday = DateTime.now().day; //今天
  int weekday = DateTime.now().weekday; //今天是本周的第几天
  String weekstart =
  new DateTime(nowyear, nowmonth, nowday - weekday + 1).toString(); //本周一的时间
  String weekend =
  new DateTime(nowyear, nowmonth, nowday - weekday + 7).toString(); //本周日的时间
  String lastweekstart =
  new DateTime(nowyear, nowmonth, nowday - weekday - 6).toString(); //上周一的时间
  String lastweekend =
  new DateTime(nowyear, nowmonth, nowday - weekday).toString(); //上周日的时间
  print(lastweekstart);
  print(lastweekend);
  if (pos == 0) {
    //如果等于0 则返回今天日期
    return formater.format(now);
  } else if (pos == 1) {
    //如果等于1 则返回昨天日期
    var yestoday = now.subtract(new Duration(days: 1));
    return formater.format(yestoday);
  } else if (pos == 2) {//如果等于2 则返回本周日期
    var day = now.day;
    var weekday = now.weekday;//显示几天第几天,1-7
    print('day=$day,week=$weekday');
    var week = now.subtract(new Duration(days: weekday-1));
    return formater.format(week);
  } else if (pos == 3) {
    //如果等于3 则返回上周日期
    var weekday = now.weekday;
    var week = now.subtract(new Duration(days: weekday+6));
    return formater.format(week);
  } else if (pos == 4) {
    //如果等于4则返回本月日期
    return year + "." + month + ".01";
  } else if (pos == 5) {
    //如果等于5 则返回上月日期
    return formater.format(DateTime(nowyear, int.parse(month)-1 , 01));
  } else if (pos == 6) {
    //如果等于6 则返回这个月日期
    return formater.format(DateTime(nowyear, int.parse(month) , 01).subtract(new Duration(days: 1)));
  } else if (pos == 7) {
    //返回上个星期末
    var weekday = now.weekday;
    var week = now.subtract(new Duration(days: weekday));
    return formater.format(week);
  }
}


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容