UIUtil.kt 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package com.adealink.weparty.util
  2. import java.util.Calendar
  3. import java.util.Locale
  4. //格式化数字 --数值加逗号
  5. fun formatDotNotNull(long: Long?): String? {
  6. if(long == null) return long
  7. return "%,d".format(Locale.US, long)
  8. }
  9. //格式化数字 -- 保留所有位数
  10. fun formatNumberStrFull(number: Long): String {
  11. return when {
  12. number < 1000 -> {
  13. number.toString()
  14. }
  15. number < 1000000 -> {
  16. val value = number.toDouble() / 1000
  17. val valueStr = value.toString().trimEnd('0').trimEnd('.') // 去掉多余的0和点
  18. String.format(Locale.US, "%sK", valueStr)
  19. }
  20. else -> {
  21. val value = number.toDouble() / 1000000
  22. val valueStr = value.toString().trimEnd('0').trimEnd('.') // 去掉多余的0和点
  23. String.format(Locale.US, "%sM", valueStr)
  24. }
  25. }
  26. }
  27. //格式化数字
  28. fun formatNumberStr(number: Long): String {
  29. return when {
  30. number < 1000 -> {
  31. number.toString()
  32. }
  33. number < 1000000 -> {
  34. String.format(Locale.US, "%.1fK", (number.toFloat() / 1000))
  35. }
  36. else -> {
  37. String.format(Locale.US, "%.1fM", (number.toFloat() / 1000000))
  38. }
  39. }
  40. }
  41. fun formatStar(star: Float?): String {
  42. return if (star == null || star < 0) {
  43. "-"
  44. } else {
  45. String.format(Locale.US, "%.1f", star)
  46. }
  47. }
  48. fun isWithinTwoDays(registerTime: Long): Boolean {
  49. val twoDaysInMillis = 2 * 24 * 60 * 60 * 1000 // 两天的毫秒数
  50. return System.currentTimeMillis() - registerTime <= twoDaysInMillis
  51. }
  52. /**
  53. * 通过生日计算年龄
  54. */
  55. fun getAgeByBirthday(birthday: Long): Int {
  56. val currentCalendar: Calendar = Calendar.getInstance()
  57. currentCalendar.timeInMillis = System.currentTimeMillis()
  58. val currentYear: Int = currentCalendar.get(Calendar.YEAR)
  59. val birthCalendar: Calendar = Calendar.getInstance()
  60. birthCalendar.timeInMillis = birthday
  61. val birthYear: Int = birthCalendar.get(Calendar.YEAR)
  62. var age = currentYear - birthYear
  63. if (currentCalendar.before(birthCalendar)) {
  64. // 如果未过生日,减去一年
  65. age -= 1
  66. }
  67. return age
  68. }