Ai
1 Star 0 Fork 70

vdebug/carbon

forked from dromara/carbon 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
getter.go 3.63 KB
一键复制 编辑 原始数据 按行查看 历史
kuafuRace 提交于 2021-07-19 09:52 +08:00 . 精简代码
package carbon
// DaysInYear 获取本年的总天数
func (c Carbon) DaysInYear() int {
if c.IsZero() {
return 0
}
days := DaysPerNormalYear
if c.IsLeapYear() {
days = DaysPerLeapYear
}
return days
}
// DaysInMonth 获取本月的总天数
func (c Carbon) DaysInMonth() int {
if c.IsZero() {
return 0
}
return c.EndOfMonth().Time.In(c.Loc).Day()
}
// MonthOfYear 获取本年的第几月(从1开始)
func (c Carbon) MonthOfYear() int {
if c.IsZero() {
return 0
}
return int(c.Time.In(c.Loc).Month())
}
// DayOfYear 获取本年的第几天(从1开始)
func (c Carbon) DayOfYear() int {
if c.IsZero() {
return 0
}
return c.Time.In(c.Loc).YearDay()
}
// DayOfMonth 获取本月的第几天(从1开始)
func (c Carbon) DayOfMonth() int {
if c.IsZero() {
return 0
}
return c.Time.In(c.Loc).Day()
}
// DayOfWeek 获取本周的第几天(从1开始)
func (c Carbon) DayOfWeek() int {
if c.IsZero() {
return 0
}
day := int(c.Time.In(c.Loc).Weekday())
if day == 0 {
return DaysPerWeek
}
return day
}
// WeekOfYear 获取本年的第几周(从1开始)
func (c Carbon) WeekOfYear() int {
if c.IsZero() {
return 0
}
_, week := c.Time.In(c.Loc).ISOWeek()
return week
}
// WeekOfMonth 获取本月的第几周(从1开始)
func (c Carbon) WeekOfMonth() int {
if c.IsZero() {
return 0
}
day := c.Time.In(c.Loc).Day()
if day < DaysPerWeek {
return 1
}
return day%DaysPerWeek + 1
}
// Century 获取当前世纪
func (c Carbon) Century() int {
if c.IsZero() {
return 0
}
return c.Year()/YearsPerCentury + 1
}
// Decade 获取当前年代
func (c Carbon) Decade() int {
if c.IsZero() {
return 0
}
return c.Year() % YearsPerCentury / YearsPerDecade * YearsPerDecade
}
// Year 获取当前年
func (c Carbon) Year() int {
if c.IsZero() {
return 0
}
return c.Time.In(c.Loc).Year()
}
// Quarter 获取当前季度
func (c Carbon) Quarter() (quarter int) {
if c.IsZero() {
return 0
}
switch {
case c.Month() >= 10:
quarter = 4
case c.Month() >= 7:
quarter = 3
case c.Month() >= 4:
quarter = 2
case c.Month() >= 1:
quarter = 1
}
return
}
// Month 获取当前月
func (c Carbon) Month() int {
if c.IsZero() {
return 0
}
return c.MonthOfYear()
}
// Week 获取当前周(从0开始)
func (c Carbon) Week() int {
if c.IsZero() {
return -1
}
return int(c.Time.In(c.Loc).Weekday())
}
// Day 获取当前日
func (c Carbon) Day() int {
if c.IsZero() {
return 0
}
return c.DayOfMonth()
}
// Hour 获取当前小时
func (c Carbon) Hour() int {
if c.IsZero() {
return 0
}
return c.Time.In(c.Loc).Hour()
}
// Minute 获取当前分钟数
func (c Carbon) Minute() int {
if c.IsZero() {
return 0
}
return c.Time.In(c.Loc).Minute()
}
// Second 获取当前秒数,1-2位数字
func (c Carbon) Second() int {
if c.IsZero() {
return 0
}
return c.Time.In(c.Loc).Second()
}
// Millisecond 获取当前毫秒数,3位数字
func (c Carbon) Millisecond() int {
if c.IsZero() {
return 0
}
return c.Time.In(c.Loc).Nanosecond() / 1e6
}
// Microsecond 获取当前微秒数,6位数字
func (c Carbon) Microsecond() int {
if c.IsZero() {
return 0
}
return c.Time.In(c.Loc).Nanosecond() / 1e3
}
// Nanosecond 获取当前纳秒数,9位数字
func (c Carbon) Nanosecond() int {
if c.IsZero() {
return 0
}
return c.Time.In(c.Loc).Nanosecond()
}
// Timezone 获取时区
func (c Carbon) Timezone() string {
return c.Loc.String()
}
// Locale 获取语言区域
func (c Carbon) Locale() string {
return c.Lang.locale
}
// Age 获取年龄
func (c Carbon) Age() int {
if c.IsZero() {
return 0
}
now := Now()
if c.ToTimestamp() > now.ToTimestamp() {
return 0
}
return int(c.DiffInYears(now))
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/vdebug/carbon.git
git@gitee.com:vdebug/carbon.git
vdebug
carbon
carbon
master

搜索帮助