Toggle navigation
Toggle navigation
This project
Loading...
Sign in
developOne
/
harmonyPool
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
wangyong_wd
2024-04-03 15:12:27 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
f0ef3f261c957bcaa0785bf657d22f63e4ead4c7
f0ef3f26
1 parent
d59faa39
播报日期展示更新
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
161 additions
and
4 deletions
sight_harmony/commons/wdKit/src/main/ets/utils/DateTimeUtils.ts
sight_harmony/commons/wdKit/src/main/ets/utils/GetLunar.ts
sight_harmony/features/wdComponent/src/main/ets/components/broadcast/RecommendTitle.ets
sight_harmony/commons/wdKit/src/main/ets/utils/DateTimeUtils.ts
View file @
f0ef3f2
import
{
StringUtils
}
from
'./StringUtils'
;
import
getLunar
from
'./GetLunar'
/**
* 日期/时间工具
*/
...
...
@@ -457,6 +457,15 @@ export class DateTimeUtils {
return
timeStr
;
}
/**
* 获取农历日期
* @param _date eg: '2024-02-01 12:12:12' or '2024-02-01' 如果不传,取当前时间
* @returns eg: '二月廿五'
* 如果后面有其他农历需求,可以引入农历插件。这个引入的getLunar文件可以删除
*/
static
getLunar
(
_date
?:
string
)
{
return
getLunar
(
_date
)
}
}
// const dateTimeUtils = new DateTimeUtils()
\ No newline at end of file
...
...
sight_harmony/commons/wdKit/src/main/ets/utils/GetLunar.ts
0 → 100644
View file @
f0ef3f2
/**
* 获取某个日期的农历
* @parmas {newDate} 日期 年-月-日
*/
export
default
function
getLunar
(
newDate
){
var
nyear
;
var
nmonth
;
var
nday
=
-
1
;
var
nwday
;
var
nhrs
;
var
nmin
;
var
nsec
;
var
newDate
=
newDate
;
var
lmonth
,
lday
,
lleap
;
//农历参数
function
Draw
()
{
NewTick
();
//显示时间
var
s
=
nyear
+
'年'
+
nmonth
+
'月'
+
nday
+
'日 '
+
'星期'
+
cweekday
(
nwday
)
+
' '
+
shapetime
(
nhrs
,
nmin
,
nsec
);
s
+=
" 农历"
+
lmonth
+
"月"
+
lday
;
//农历
var
lunar_month_day
=
lmonth
+
"月"
+
lday
;
return
lunar_month_day
;
}
function
NewTick
()
{
console
.
warn
(
'noww---'
,
newDate
)
var
noww
=
newDate
?
new
Date
(
newDate
)
:
new
Date
();
if
(
noww
.
getDate
()
!=
nday
)
{
nyear
=
noww
.
getFullYear
();
nmonth
=
noww
.
getMonth
()
+
1
;
nwday
=
noww
.
getDay
();
nday
=
noww
.
getDate
();
getlunar
();
//获取农历
}
nhrs
=
noww
.
getHours
();
nmin
=
noww
.
getMinutes
();
nsec
=
noww
.
getSeconds
();
}
//辅助函数
var
hzWeek
=
new
Array
(
"日"
,
"一"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
,
"日"
);
function
cweekday
(
wday
)
{
return
hzWeek
[
wday
];
}
function
shapetime
(
vhrs
,
vmin
,
vsec
)
{
if
(
vsec
<=
9
)
vsec
=
"0"
+
vsec
;
if
(
vmin
<=
9
)
vmin
=
"0"
+
vmin
;
if
(
vhrs
<=
9
)
vhrs
=
"0"
+
vhrs
;
return
vhrs
+
":"
+
vmin
+
":"
+
vsec
}
//农历函数开始
var
lunarInfo
=
new
Array
(
0x04bd8
,
0x04ae0
,
0x0a570
,
0x054d5
,
0x0d260
,
0x0d950
,
0x16554
,
0x056a0
,
0x09ad0
,
0x055d2
,
0x04ae0
,
0x0a5b6
,
0x0a4d0
,
0x0d250
,
0x1d255
,
0x0b540
,
0x0d6a0
,
0x0ada2
,
0x095b0
,
0x14977
,
0x04970
,
0x0a4b0
,
0x0b4b5
,
0x06a50
,
0x06d40
,
0x1ab54
,
0x02b60
,
0x09570
,
0x052f2
,
0x04970
,
0x06566
,
0x0d4a0
,
0x0ea50
,
0x06e95
,
0x05ad0
,
0x02b60
,
0x186e3
,
0x092e0
,
0x1c8d7
,
0x0c950
,
0x0d4a0
,
0x1d8a6
,
0x0b550
,
0x056a0
,
0x1a5b4
,
0x025d0
,
0x092d0
,
0x0d2b2
,
0x0a950
,
0x0b557
,
0x06ca0
,
0x0b550
,
0x15355
,
0x04da0
,
0x0a5b0
,
0x14573
,
0x052b0
,
0x0a9a8
,
0x0e950
,
0x06aa0
,
0x0aea6
,
0x0ab50
,
0x04b60
,
0x0aae4
,
0x0a570
,
0x05260
,
0x0f263
,
0x0d950
,
0x05b57
,
0x056a0
,
0x096d0
,
0x04dd5
,
0x04ad0
,
0x0a4d0
,
0x0d4d4
,
0x0d250
,
0x0d558
,
0x0b540
,
0x0b6a0
,
0x195a6
,
0x095b0
,
0x049b0
,
0x0a974
,
0x0a4b0
,
0x0b27a
,
0x06a50
,
0x06d40
,
0x0af46
,
0x0ab60
,
0x09570
,
0x04af5
,
0x04970
,
0x064b0
,
0x074a3
,
0x0ea50
,
0x06b58
,
0x05ac0
,
0x0ab60
,
0x096d5
,
0x092e0
,
//1990
0x0c960
,
0x0d954
,
0x0d4a0
,
0x0da50
,
0x07552
,
0x056a0
,
0x0abb7
,
0x025d0
,
0x092d0
,
0x0cab5
,
0x0a950
,
0x0b4a0
,
0x0baa4
,
0x0ad50
,
0x055d9
,
0x04ba0
,
0x0a5b0
,
0x15176
,
0x052b0
,
0x0a930
,
0x07954
,
0x06aa0
,
0x0ad50
,
0x05b52
,
0x04b60
,
0x0a6e6
,
0x0a4e0
,
0x0d260
,
0x0ea65
,
0x0d530
,
0x05aa0
,
0x076a3
,
0x096d0
,
0x04bd7
,
0x04ad0
,
0x0a4d0
,
0x1d0b6
,
0x0d250
,
0x0d520
,
0x0dd45
,
0x0b5a0
,
0x056d0
,
0x055b2
,
0x049b0
,
0x0a577
,
0x0a4b0
,
0x0aa50
,
0x1b255
,
0x06d20
,
0x0ada0
,
0x14b63
);
function
lYearDays
(
y
)
{
var
i
,
sum
=
348
;
for
(
i
=
0x8000
;
i
>
0x8
;
i
>>=
1
)
sum
+=
(
lunarInfo
[
y
-
1900
]
&
i
)
?
1
:
0
;
return
(
sum
+
leapDays
(
y
));
}
function
leapDays
(
y
)
{
if
(
leapMonth
(
y
))
return
((
lunarInfo
[
y
-
1900
]
&
0x10000
)
?
30
:
29
);
else
return
(
0
);
}
function
leapMonth
(
y
)
{
return
(
lunarInfo
[
y
-
1900
]
&
0xf
);
}
function
monthDays
(
y
,
m
)
{
return
((
lunarInfo
[
y
-
1900
]
&
(
0x10000
>>
m
))
?
30
:
29
);
}
function
Lunar
(
y
,
m
,
d
)
{
var
i
,
leap
=
0
,
temp
=
0
;
var
offset
=
(
Date
.
UTC
(
y
,
m
,
d
)
-
Date
.
UTC
(
1900
,
0
,
31
))
/
86400000
;
for
(
i
=
1900
;
i
<
2050
&&
offset
>
0
;
i
++
)
{
temp
=
lYearDays
(
i
);
offset
-=
temp
;
}
if
(
offset
<
0
)
{
offset
+=
temp
;
i
--
;
}
this
.
year
=
i
;
leap
=
leapMonth
(
i
);
this
.
isLeap
=
false
;
for
(
i
=
1
;
i
<
13
&&
offset
>
0
;
i
++
)
{
if
(
leap
>
0
&&
i
==
(
leap
+
1
)
&&
this
.
isLeap
==
false
)
{
--
i
;
this
.
isLeap
=
true
;
temp
=
leapDays
(
this
.
year
);
}
else
{
temp
=
monthDays
(
this
.
year
,
i
);
}
if
(
this
.
isLeap
==
true
&&
i
==
(
leap
+
1
))
this
.
isLeap
=
false
;
offset
-=
temp
;
}
if
(
offset
==
0
&&
leap
>
0
&&
i
==
leap
+
1
)
if
(
this
.
isLeap
)
{
this
.
isLeap
=
false
;
}
else
{
this
.
isLeap
=
true
;
--
i
;
}
if
(
offset
<
0
)
{
offset
+=
temp
;
--
i
;
}
this
.
month
=
i
;
this
.
day
=
offset
+
1
;
}
var
nStr1
=
new
Array
(
''
,
'一'
,
'二'
,
'三'
,
'四'
,
'五'
,
'六'
,
'七'
,
'八'
,
'九'
,
'十'
,
'十一'
,
'十二'
);
var
nStr2
=
new
Array
(
'初'
,
'十'
,
'廿'
,
'卅'
,
'□'
);
function
GetcDay
(
d
)
{
var
s
;
switch
(
d
)
{
case
10
:
s
=
'初十'
;
break
;
case
20
:
s
=
'二十'
;
break
;
case
30
:
s
=
'三十'
;
break
;
default
:
s
=
nStr2
[
Math
.
floor
(
d
/
10
)];
s
+=
nStr1
[
d
%
10
];
break
;
}
return
(
s
);
}
function
GetcMon
(
m
)
{
if
(
m
==
1
)
return
'正'
;
else
return
nStr1
[
m
];
}
function
getlunar
()
{
var
lObj
=
new
Lunar
(
nyear
,
nmonth
-
1
,
nday
);
lmonth
=
GetcMon
(
lObj
.
month
);
lday
=
GetcDay
(
lObj
.
day
);
lleap
=
lObj
.
isLeap
;
if
(
lleap
==
1
)
{
lmonth
=
"闰"
+
lmonth
;
}
}
//农历函数结束
return
Draw
();
}
\ No newline at end of file
...
...
sight_harmony/features/wdComponent/src/main/ets/components/broadcast/RecommendTitle.ets
View file @
f0ef3f2
import { CommonConstants } from 'wdConstant/Index'
import { DateTimeUtils } from 'wdKit';
/**
* 播报标题描述
*/
...
...
@@ -33,10 +33,11 @@ export struct RecommendTitle {
.margin({right: 8})
.alignSelf(ItemAlign.Start)
Column() {
Text(
'正月二十八'
)
Text(
DateTimeUtils.getLunar()
)
.fontSize($r('app.float.font_size_14'))
.fontColor($r('app.color.color_222222'))
Text('02/28')
.alignSelf(ItemAlign.Start)
Text(DateTimeUtils.formatDate(new Date().getTime(), 'MM/dd'))
.fontSize($r('app.float.font_size_24'))
.fontColor($r('app.color.color_222222'))
}
...
...
Please
register
or
login
to post a comment