91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HarmonyOS實(shí)戰(zhàn):自定義時(shí)間選擇器

尤楓 ? 來(lái)源:jf_54996641 ? 作者:jf_54996641 ? 2025-06-09 15:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

最近在日常鴻蒙開(kāi)發(fā)過(guò)程中,經(jīng)常會(huì)使用一些時(shí)間選擇器,鴻蒙官方提供的時(shí)間選擇器滿足不了需求,所以自己動(dòng)手自定義一些經(jīng)常會(huì)使用到的時(shí)間選擇器,希望能幫到你,建議點(diǎn)贊收藏!

實(shí)現(xiàn)效果

需求分析

  1. 默認(rèn)選中日期為當(dāng)前時(shí)間。
  2. 支持精確到時(shí)分。
  3. 注意閏年的計(jì)算。

技術(shù)實(shí)現(xiàn)

  1. 首先要想實(shí)現(xiàn)時(shí)間選擇器,需要使用一個(gè)上下可以滾動(dòng)的控件,這里使用鴻蒙官方提供的 TextPicker,TextPicker 控件支持內(nèi)容的上下滾動(dòng),可以用來(lái)顯示年月日的選擇器,確定了控件后,先計(jì)算日期。
new Promise< string[] >(async (resolve: (data: Array< string >) = > void, reject) = > {
      let list: Array< string > = []
      for (let start = this.currentYear; start <= this.currentYear + 1; start++) {
        //月份
        for (let i = (start == this.currentYear?this.startMonth:1); i < 13; i++) {
          let day: number = 0
          if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
            day = 31
          } else if (i == 2) {
            //閏年
            if (start % 400 == 0 || (start % 4 == 0 && start % 100 > 0)) {
              day = 29
            }
            // //平年
            else {
              day = 28
            }
          } else {
            day = 30
          }
          for (let j = ((start == this.currentYear&& i == this.startMonth)?this.startDay:1); j <= day; j++) {
            list.push(start + "-" + (i).toString().padStart(2,"0") + "-" + j.toString().padStart(2,"0"))
          }
        }
      }
      resolve(list)
    }).then((result: Array< string >) = > {
      this.timeList = result
    })

由于計(jì)算日期是比較耗時(shí)的操作,這里使用 Pormise 處理日期的計(jì)算,特別需要注意閏年的日期計(jì)算,這里以 1 年為周期。

  1. 根據(jù)計(jì)算得到的日期數(shù)據(jù)集合,使用 TextPicker 顯示年月日,同時(shí)默認(rèn)選中當(dāng)前時(shí)間 choseDay。
TextPicker({ range: this.timeList, value: this.choseDay })
            .pickerStyle()
            .onChange((value, index) = > {
              this.choseDay = value.toString()
            })
            .width(105)
  1. 計(jì)算時(shí)分?jǐn)?shù)據(jù)。
for (let i = 0; i < 60; i=i+this.skipMinute) {
      this.minuteList.push((i< 10?"0"+i:i).toString().concat(this.isShowUnit?"分":""))
    }
    for (let i = 0; i < 24; i++) {
      this.hourList.push((i< 10?"0"+i:i).toString().concat(this.isShowUnit?"時(shí)":""))
    }
  1. 分別使用 TextPicker 顯示時(shí)分。
TextPicker({
        range: this.hourList,
        value:this.currentHour+""
      }).pickerStyle()
        .onChange((value,index)= >{
          this.selectHour = value+""
          this.onChange(this.selectHour.concat(":"+this.selectMinute))

        })
      TextPicker({
        range: this.minuteList,
        value:this.currentMinute+""
      }).pickerStyle()
        .onChange((value,index)= >{
          this.selectMinute = value.toString()
          this.onChange(this.selectHour+":"+value)
        })
  1. 要讓時(shí)間選擇器默認(rèn)選擇當(dāng)前時(shí)間時(shí),需要注意選擇器的格式為"2012-01-01",需要在計(jì)算時(shí)不足 10 時(shí)補(bǔ) 0。否則時(shí)間選擇器不會(huì)默認(rèn)選中當(dāng)前時(shí)間。
  2. 鴻蒙官方的 Date 類(lèi)默認(rèn)提供的月份是從 0 開(kāi)始的,也就是說(shuō)通過(guò) data.getUTCMoth()獲取的月份默認(rèn)范圍為 [0,11],而選擇器需要顯示的是 [1,12],這里需要手動(dòng)處理。

總結(jié)

自定義時(shí)間選擇器看似簡(jiǎn)單,其實(shí)需要注意的地方不少,時(shí)間的計(jì)算,時(shí)間的顯示格式,默認(rèn)選中當(dāng)前時(shí)間等。都需要開(kāi)發(fā)者在日常開(kāi)發(fā)中注意計(jì)算細(xì)節(jié)??吹竭@里相信你已經(jīng)學(xué)會(huì)了怎么自定義一個(gè)時(shí)間選擇器了,快去動(dòng)手試試吧!

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2153

    瀏覽量

    36075
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    電能質(zhì)量監(jiān)測(cè)裝置可自定義監(jiān)測(cè)時(shí)段嗎?

    電能質(zhì)量監(jiān)測(cè)裝置普遍支持自定義監(jiān)測(cè)時(shí)段,現(xiàn)代中高端裝置還具備分時(shí)差異化監(jiān)測(cè)與靈活觸發(fā)能力,可按時(shí)間、事件或混合策略定制采集與存儲(chǔ),兼顧精度、效率與存儲(chǔ)成本。 一、自定義監(jiān)測(cè)時(shí)段的核心實(shí)現(xiàn)方式 1.
    的頭像 發(fā)表于 12-10 16:49 ?1079次閱讀

    如何保證電能質(zhì)量在線監(jiān)測(cè)裝置的自定義監(jiān)測(cè)時(shí)段功能的準(zhǔn)確性和穩(wěn)定性?

    要保證電能質(zhì)量在線監(jiān)測(cè)裝置 自定義監(jiān)測(cè)時(shí)段功能 的準(zhǔn)確性(時(shí)段執(zhí)行精準(zhǔn)、數(shù)據(jù)采集可靠)和穩(wěn)定性(長(zhǎng)期無(wú)故障、異常自動(dòng)恢復(fù)),需從 時(shí)間基準(zhǔn)、硬件保障、軟件調(diào)度、配置校驗(yàn)、容錯(cuò)冗余、運(yùn)維校準(zhǔn) 六個(gè)維度
    的頭像 發(fā)表于 12-10 14:03 ?379次閱讀
    如何保證電能質(zhì)量在線監(jiān)測(cè)裝置的<b class='flag-5'>自定義</b>監(jiān)測(cè)時(shí)段功能的準(zhǔn)確性和穩(wěn)定性?

    電能質(zhì)量在線監(jiān)測(cè)裝置的自定義監(jiān)測(cè)時(shí)段功能有哪些應(yīng)用場(chǎng)景?

    電能質(zhì)量在線監(jiān)測(cè)裝置的 自定義監(jiān)測(cè)時(shí)段功能 ,核心價(jià)值是通過(guò) “按需配置監(jiān)測(cè)時(shí)間、采樣頻率和數(shù)據(jù)策略”,實(shí)現(xiàn)精準(zhǔn)監(jiān)測(cè)、資源優(yōu)化與數(shù)據(jù)針對(duì)性分析,其應(yīng)用場(chǎng)景覆蓋工業(yè)生產(chǎn)、商業(yè)運(yùn)營(yíng)、電網(wǎng)運(yùn)維、特殊保障等
    的頭像 發(fā)表于 12-10 14:01 ?417次閱讀
    電能質(zhì)量在線監(jiān)測(cè)裝置的<b class='flag-5'>自定義</b>監(jiān)測(cè)時(shí)段功能有哪些應(yīng)用場(chǎng)景?

    電能質(zhì)量在線監(jiān)測(cè)裝置可自定義監(jiān)測(cè)時(shí)段嗎?

    存儲(chǔ)策略及周期性重復(fù)規(guī)則,滿足不同場(chǎng)景下的監(jiān)測(cè)需求。 一、自定義監(jiān)測(cè)時(shí)段的核心能力 能力類(lèi)型 具體說(shuō)明 典型應(yīng)用 基礎(chǔ)時(shí)段設(shè)置 設(shè)定單次監(jiān)測(cè)的開(kāi)始時(shí)間(精確到秒)、結(jié)束時(shí)間或持續(xù)時(shí)長(zhǎng) 特定設(shè)備投運(yùn)測(cè)試(如新增變頻
    的頭像 發(fā)表于 12-10 13:58 ?369次閱讀
    電能質(zhì)量在線監(jiān)測(cè)裝置可<b class='flag-5'>自定義</b>監(jiān)測(cè)時(shí)段嗎?

    無(wú)圖形界面模式下自定義檢查工具的應(yīng)用

    此前文章已介紹 ANSA 中的自定義檢查工具。本文將探討該功能在無(wú)圖形界面(No-GUI)模式下的應(yīng)用,旨在滿足標(biāo)準(zhǔn)化工作流程的需求,適用于需要高度自動(dòng)化的前處理場(chǎng)景。通過(guò)集成自定義檢查,用戶可實(shí)現(xiàn)工作流程的高效自動(dòng)化運(yùn)行。
    的頭像 發(fā)表于 11-30 14:13 ?594次閱讀
    無(wú)圖形界面模式下<b class='flag-5'>自定義</b>檢查工具的應(yīng)用

    采用匯編指示符來(lái)使用自定義指令

    、采用.insn匯編指示符實(shí)現(xiàn)risc-v自定義指令。這種方式可以指定工具來(lái)選擇寄存,也可以自己選定寄存。指令格式如下(引自gnu 匯編
    發(fā)表于 10-28 06:02

    LOTO示波器自定義解碼功能—CANFD解碼

    LOTO示波器軟件更新了自定義解碼功能,并在bilibili上傳了演示視頻,視頻鏈接: https://www.bilibili.com/video/BV1wq3ezjEjQ
    的頭像 發(fā)表于 07-11 10:34 ?1067次閱讀
    LOTO示波器<b class='flag-5'>自定義</b>解碼功能—CANFD解碼

    大彩講堂:VisualTFT軟件如何自定義圓形進(jìn)度條

    VisualTFT軟件如何自定義圓形進(jìn)度條
    的頭像 發(fā)表于 07-07 17:10 ?1654次閱讀
    大彩講堂:VisualTFT軟件如何<b class='flag-5'>自定義</b>圓形進(jìn)度條

    HarmonyOS實(shí)戰(zhàn):3秒實(shí)現(xiàn)一個(gè)自定義輪播圖

    那么簡(jiǎn)單,需要考慮的細(xì)節(jié)很多。不過(guò)在 HarmonyOS 中實(shí)現(xiàn)一個(gè)輪播圖卻是十分的簡(jiǎn)單,本篇文章教你在最短的時(shí)間內(nèi)快速實(shí)現(xiàn)一個(gè)自定義的 輪播圖,建議點(diǎn)贊收藏!
    的頭像 發(fā)表于 06-24 17:06 ?1517次閱讀

    KiCad 中的自定義規(guī)則(KiCon 演講)

    “ ?Seth Hillbrand 在 KiCon US 2025 上為大家介紹了 KiCad 的規(guī)則系統(tǒng),并詳細(xì)講解了自定義規(guī)則的設(shè)計(jì)與實(shí)例。? ” ? 演講主要圍繞 加強(qiáng) KiCad 中的自定義
    的頭像 發(fā)表于 06-16 11:17 ?2161次閱讀
    KiCad 中的<b class='flag-5'>自定義</b>規(guī)則(KiCon 演講)

    HarmonyOS實(shí)戰(zhàn):高德地圖自定義定位圖標(biāo)展示

    的問(wèn)題,建議點(diǎn)贊收藏! 實(shí)現(xiàn)效果 需求分析 首先需要實(shí)現(xiàn)一個(gè)自定義的圖標(biāo)替代系統(tǒng)默認(rèn)的箭頭。 獲取定位權(quán)限與位置信息。 獲取定位結(jié)果并展示當(dāng)前位置。 技術(shù)實(shí)現(xiàn) 在鴻蒙的實(shí)際開(kāi)發(fā)過(guò)程中,地圖定位權(quán)限首先需要申請(qǐng)兩個(gè)權(quán)限,
    的頭像 發(fā)表于 06-09 14:59 ?755次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>實(shí)戰(zhàn)</b>:高德地圖<b class='flag-5'>自定義</b>定位圖標(biāo)展示

    HarmonyOS應(yīng)用自定義鍵盤(pán)解決方案

    自定義鍵盤(pán)是一種替換系統(tǒng)默認(rèn)鍵盤(pán)的解決方案,可實(shí)現(xiàn)鍵盤(pán)個(gè)性化交互。允許用戶結(jié)合業(yè)務(wù)需求與操作習(xí)慣,對(duì)按鍵布局進(jìn)行可視化重構(gòu)、設(shè)置多功能組合鍵位,使輸入更加便捷和舒適。在安全防護(hù)層面,自定義鍵盤(pán)可以
    的頭像 發(fā)表于 06-05 14:19 ?2414次閱讀

    LabVIEW運(yùn)動(dòng)控制(三):EtherCAT運(yùn)動(dòng)控制的高效加工指令自定義封裝

    LabVIEW高效加工指令自定義封裝
    的頭像 發(fā)表于 04-08 13:49 ?3643次閱讀
    LabVIEW運(yùn)動(dòng)控制(三):EtherCAT運(yùn)動(dòng)控制<b class='flag-5'>器</b>的高效加工指令<b class='flag-5'>自定義</b>封裝

    數(shù)字電路—13、數(shù)據(jù)選擇器

    數(shù)據(jù)選擇器定義:在多路數(shù)據(jù)傳送過(guò)程中,能夠根據(jù)需要將其中任意一路挑選出來(lái)的電路,叫做數(shù)據(jù)選擇器, 也稱(chēng)為多路選擇器,其作用相當(dāng)于多路開(kāi)關(guān)。
    發(fā)表于 03-26 11:13

    如何添加自定義單板

    在開(kāi)發(fā)過(guò)程中,用戶有時(shí)需要?jiǎng)?chuàng)建自定義板配置。本節(jié)將通過(guò)一個(gè)實(shí)例講解用戶如何創(chuàng)建屬于自己的machine,下面以g2l-test.conf為例進(jìn)行說(shuō)明。
    的頭像 發(fā)表于 03-12 14:43 ?1366次閱讀