<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ~~~ /* Package toolutilv4 提供了一組時間工具函數 - ParseInLocation: 將指定格式的時間字符串解析為 time.Time 類型,使用本地時區 - IsThisWeek: 判斷給定的時間是否在本周內 - GetFirstAndLastDayOfMonth 返回指定時間的第一天和最后一天的時間,并以字符串形式返回日期的年月日 - GetNDayStrMap 獲取不同類型時間段的日期數據 - GetNLastYears: 獲取輸入時間往前N個年份 - GetNLastQuarters: 獲取輸入時間往前N個季度 - GetNLastMonths: 獲取輸入時間往前N個月 */ package toolutilv4 import ( "fmt" "sort" "time" ) var ToolTime = toolTimeUtil{} type toolTimeUtil struct{} // ParseInLocation 將指定格式的時間字符串解析為 time.Time 類型,使用本地時區 // 時間字符串格式為參數 layout 所指定的格式,返回解析后的 time.Time 對象 func (t *toolTimeUtil) ParseInLocation(layout, value string) time.Time { // 使用 time.ParseInLocation 函數將字符串解析為 time.Time 類型 tt, _ := time.ParseInLocation(layout, value, time.Local) return tt } // IsThisWeek 判斷給定的時間是否在本周內 func (t *toolTimeUtil) IsThisWeek(tt time.Time) bool { now := time.Now() weekStart := now.AddDate(0, 0, -int(now.Weekday())) weekEnd := weekStart.AddDate(0, 0, 7) return !tt.Before(weekStart) && tt.Before(weekEnd) } // GetFirstAndLastDayOfMonth 返回指定時間的第一天和最后一天的時間,并以字符串形式返回日期的年月日 func (t *toolTimeUtil) GetFirstAndLastDayOfMonth(tt time.Time) (string, string) { // 獲取本月的第一天和最后一天 firstDay := time.Date(tt.Year(), tt.Month(), 1, 0, 0, 0, 0, tt.Location()) lastDay := firstDay.AddDate(0, 1, 0).Add(-time.Nanosecond) // 格式化為字符串日期的年月日 firstDayStr := firstDay.Format("2006-01-02") lastDayStr := lastDay.Format("2006-01-02") return firstDayStr, lastDayStr } // GetNDayStrMap 獲取不同類型時間段的日期數據 // 1近一周;2近一月;3近半年;4近一年 func (t *toolTimeUtil) GetNDayStrMap(types int) []map[string]interface{} { var dataArr = make([]map[string]interface{}, 0) now := time.Now() switch types { case 1: for i := 6; i >= 0; i-- { // 獲取當前日期并格式化為 "01-02" 的形式 date := now.AddDate(0, 0, -i).Format("01-02") // 將日期作為鍵,初始值為0作為值存儲到 map 中 dataArr = append(dataArr, map[string]interface{}{"name": date, "value": 0}) } case 2: for i := 29; i >= 0; i-- { // 獲取當前日期并格式化為 "01-02" 的形式 date := now.AddDate(0, 0, -i).Format("01-02") // 將日期作為鍵,初始值為0作為值存儲到 map 中 dataArr = append(dataArr, map[string]interface{}{"name": date, "value": 0}) } case 3: for i := 5; i >= 0; i-- { // 獲取當前年月并格式化為 "2006-01" 的形式 date := now.AddDate(0, -i, 0).Format("2006-01") // 將日期作為鍵,初始值為0作為值存儲到 map 中 dataArr = append(dataArr, map[string]interface{}{"name": date, "value": 0}) } case 4: for i := 11; i >= 0; i-- { // 獲取當前年月并格式化為 "2006-01" 的形式 date := now.AddDate(0, -i, 0).Format("2006-01") // 將日期作為鍵,初始值為0作為值存儲到 map 中 dataArr = append(dataArr, map[string]interface{}{"name": date, "value": 0}) } } return dataArr } // GetNLastYears 獲取輸入時間往前N個年份 func (t *toolTimeUtil) GetNLastYears(tt time.Time, n int, isAsc bool) []int { result := make([]int, n) for i := 0; i < n; i++ { result[i] = tt.Year() - i } if isAsc { sort.Ints(result) } return result } // GetNLastQuarters 獲取輸入時間往前N個季度 func (t *toolTimeUtil) GetNLastQuarters(tt time.Time, n int, isAsc bool) []string { result := make([]string, n) now := tt quarter := int(now.Month()-1)/3 + 1 // 獲取當前季度 lastQuarter := quarter // 計算上一季度 year := now.Year() lastYear := year for i := 0; i < n; i++ { if lastQuarter == 0 { // 上一季度是去年的 Q4 lastQuarter = 4 lastYear-- } quarterName := fmt.Sprintf("Q%d", lastQuarter) result[i] = fmt.Sprintf("%d-%s", lastYear, quarterName) lastQuarter-- } if isAsc { sort.Strings(result) } return result } // GetNLastMonths 獲取輸入時間往前N個月 func (t *toolTimeUtil) GetNLastMonths(tt time.Time, n int, isAsc bool) []string { result := make([]string, n) for i := 0; i < n; i++ { index := i if !isAsc { index = n - i - 1 } result[index] = tt.AddDate(0, -i, 0).Format("2006-01") } return result } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看