change_birthday_controller.dart 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import 'package:injectable/injectable.dart';
  2. import 'package:keyboard/base/base_controller.dart';
  3. import 'package:get/get.dart';
  4. import 'package:keyboard/utils/age_zodiac_sign_util.dart';
  5. import 'package:intl/intl.dart';
  6. import 'package:keyboard/utils/toast_util.dart';
  7. @injectable
  8. class ChangeBirthdayController extends BaseController {
  9. final tag = "ChangeBirthdayController";
  10. late DateTime initialDate;
  11. // 最小日期
  12. var minimumDate = DateTime.parse("1921-01-01");
  13. late String currentDate;
  14. //星座
  15. var constellation = "".obs;
  16. var age = 0.obs;
  17. ChangeBirthdayController();
  18. @override
  19. void onInit() {
  20. super.onInit();
  21. final String? birthday = Get.arguments?["birthday"];
  22. if (birthday != null) {
  23. initialDate = DateTime.parse(birthday);
  24. currentDate = birthday;
  25. constellation.value = AgeZodiacSignUtil.getZodiacSign(initialDate);
  26. age.value = AgeZodiacSignUtil.calculateAge(initialDate);
  27. } else {
  28. initialDate = DateTime.now();
  29. currentDate = DateFormat('yyyy-MM-dd').format(initialDate);
  30. constellation.value = AgeZodiacSignUtil.getZodiacSign(initialDate);
  31. age.value = AgeZodiacSignUtil.calculateAge(initialDate);
  32. }
  33. }
  34. updateConstellation(DateTime date) {
  35. constellation.value = AgeZodiacSignUtil.getZodiacSign(date);
  36. age.value = AgeZodiacSignUtil.calculateAge(date);
  37. print("星座:${constellation.value}");
  38. print("年龄:${age.value}");
  39. print("日期:${date}");
  40. currentDate = DateFormat('yyyy-MM-dd').format(date);
  41. }
  42. void clickBack() {
  43. Get.back();
  44. }
  45. void clickSave() {
  46. if (currentDate.isEmpty) {
  47. ToastUtil.show("请选择日期");
  48. return;
  49. }
  50. Get.back(result: currentDate);
  51. }
  52. }