puzhibing
2026-08-21 5fa94b3718b4a78a4fcea4c97652b0ef20b7de3a
common/src/main/java/com/xw/common/TimeDialog.kt
@@ -60,14 +60,23 @@
            dismiss()
        }
    }
    /*仅显示年月日*/
    fun show(title: String, showTime: Long = -1L, minTime: Long = -1L, onSure: (Long) -> Unit) {
    fun show(
        title: String,
        showTime: Long = -1L,
        minTime: Long = -1L,
        maxTime: Long? = null,
        onSure: (Long) -> Unit
    ) {
        bind.title.text = title
        getCurrentData(if (minTime == -1L) System.currentTimeMillis() else minTime)
        getCurrentData(if (minTime == -1L) System.currentTimeMillis() else minTime, maxTime)
        this.onSure = onSure
        val time = if (showTime == -1L && minTime == -1L) System.currentTimeMillis() else max(showTime, minTime)
        val time = if (showTime == -1L && minTime == -1L) System.currentTimeMillis() else max(
            showTime,
            minTime
        )
        initSelectTime(TimeUtils.millis2String(time, "yyyy-MM-dd"))
        super.show()
    }
@@ -132,8 +141,10 @@
    private fun initDays(days: Int) {
        dayDataList.clear()
        val dayStart = if (minYear == showYear && minMouth == showMouth) minDay.toInt() else 1
        val dayEnd = if ("$maxYear" == showYear && "$maxMouth" == showMouth) maxDay else days
        val dayStart =
            if (minYear.toInt() == showYear.toInt() && minMouth.toInt() == showMouth.toInt()) minDay.toInt() else 1
        val dayEnd =
            if (maxYear == showYear.toInt() && maxMouth == showMouth.toInt()) maxDay else days
        for (i in dayStart..dayEnd) {
//            dayDataList.add("${if (i < 10) "0$i" else i}日")
            dayDataList.add("${i}日")
@@ -162,7 +173,7 @@
    }
    override fun onItemSelected(loopview: LoopView, index: Int) {
        if(index == - 1) return
        if (index == -1) return
        when (loopview.tag.toString()) {
            "yearView" -> {
                showYear = yearDataList[index].replace("年", "")
@@ -201,8 +212,8 @@
            else TimeUtils.string2Millis(time, "yyyy-MM-dd")
        }
        fun getTime(time: Long): String {
            return TimeUtils.millis2String(time, "yyyy-MM-dd")
        fun getTime(time: Long, pattern: String = "yyyy-MM-dd"): String {
            return TimeUtils.millis2String(time, pattern)
        }
    }