Eden.Sun 发表于 2022-7-29 10:41:20

脚本自定义日期展示

本帖最后由 Eden.Sun 于 2022-7-29 15:08 编辑

这篇帖子介绍用过 AR 的 ”脚本”功能实现对日期时间的任意格式化展示。
我们的AR 提供了多种情况下的时间日期格式化展示功能,比如长/短日期、时间、汉字年份时间等等,可以满足大多数情况下的需求。不过,当我们想根据自己的想法来设置特殊的格式化的时候,系统提供的格式化类型可能就难以满足我们的需求,比如我我想把日期按照”22-Mar-06” 的格式展示(年份后两位、月份英文单词的缩写、两位日期)。类似这种特殊的情况,我们就可以通过“脚本”功能,自己写代码来实现;
首先是需求分析:
①   需求:日期格式化,将日期格式化为指定的格式,如“2022-07-22”、“2022/07/22”转换为22-Mar-06(年份的后两位,月份是英文单词的缩写,日期是常 规的两位数字)②   问题分析与解决(1):      a)      通过日期类的操作,分别获取到传入参数的年、月、日,然后根据实际的需求进行格式化:
      b)      脚本Function ConvertDateFormat(ByVal inputString As Date) As String
      Dim now As Date = inputString '‘将参数转化为日期类型
      Dim DateText As String = now.ToString("dd") '获取日期的 日 部分的数据
      
      '这是 Excel 的公式,MMM表示获取月份英文的缩写,MMMM 表示月份的英文单词的全拼
      Dim MonthText As String = now.ToString("MMM", New System.Globalization.CultureInfo("en-us"))

      Dim YearText As String = now.ToString("yy") ' 获取年份的后两位
      Dim s As String = YearText + "-" + MonthText + "-" + DateText ' 拼接结果
      Return s ' 返回结果
End Function      c)         效果预览:                  
                  添加脚本:
                  

                  添加数据:
                  

                   添加脚本:
                  

③问题分析与解决(2):这个问题的难点在于月份的缩写形式不好获取和转换,其他的需求都可以通过格式化来实现。那么我们可以将所有的月份对应的引文单词的缩写枚举出来,然后根据月份的数字获取对应的单词;
      a)      脚本:
Function GetMonthEN(ByVal month As String) As String
      Dim strReturn As String = ""'定义返回结果
      Dim strParaMonthn As String = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec"'月份缩写字符串
      Dim strSubMonth() As String   '定义字符串切割函数
      strSubMonth = strParaMonthn.Split("_".ToCharArray())'切割字符串
      Dim index As Integer = month - 1'获取数组下标(数组下标从0开始)
      strReturn = String.Join("_", strSubMonth(index))' 返回结果
      Return strReturn'
End Function      a)       效果展示:               
               脚本内容:
                     

                     添加数据:
                     


                     预览效果展示:
                  



页: [1]
查看完整版本: 脚本自定义日期展示