diff --git a/src/lvgl_private.h b/src/lvgl_private.h index cda92217b..8ab64e973 100644 --- a/src/lvgl_private.h +++ b/src/lvgl_private.h @@ -70,7 +70,6 @@ extern "C" { #include "widgets/buttonmatrix/lv_buttonmatrix_private.h" #include "widgets/slider/lv_slider_private.h" #include "widgets/switch/lv_switch_private.h" -#include "widgets/calendar/lv_calendar_chinese_private.h" #include "widgets/calendar/lv_calendar_private.h" #include "widgets/imagebutton/lv_imagebutton_private.h" #include "widgets/bar/lv_bar_private.h" diff --git a/src/widgets/calendar/lv_calendar_chinese.c b/src/widgets/calendar/lv_calendar_chinese.c index 81c844bf1..ee24133ad 100644 --- a/src/widgets/calendar/lv_calendar_chinese.c +++ b/src/widgets/calendar/lv_calendar_chinese.c @@ -6,7 +6,6 @@ /********************* * INCLUDES *********************/ -#include "lv_calendar_chinese_private.h" #include "lv_calendar_private.h" #if LV_USE_CALENDAR && LV_USE_CALENDAR_CHINESE @@ -124,7 +123,7 @@ const char * lv_calendar_get_day_name(lv_calendar_date_t * gregorian) { uint16_t i, len; lv_calendar_chinese_t chinese_calendar; - chinese_calendar = lv_calendar_gregorian_to_chinese(gregorian); + lv_calendar_gregorian_to_chinese(gregorian, &chinese_calendar); if(gregorian->year > 2099 || gregorian->year < 1901) return NULL; @@ -170,11 +169,11 @@ const char * lv_calendar_get_day_name(lv_calendar_date_t * gregorian) return (char *)chinese_calendar_day_name[chinese_calendar.today.day - 1]; } -lv_calendar_chinese_t lv_calendar_gregorian_to_chinese(lv_calendar_date_t * gregorian) +void lv_calendar_gregorian_to_chinese(lv_calendar_date_t * gregorian_time, lv_calendar_chinese_t * chinese_time) { - uint16_t year = gregorian->year; - uint8_t month = gregorian->month; - uint8_t day = gregorian->day; + uint16_t year = gregorian_time->year; + uint8_t month = gregorian_time->month; + uint8_t day = gregorian_time->day; /*Record the number of days between the Spring Festival and the New Year's Day of that year.*/ @@ -191,14 +190,13 @@ lv_calendar_chinese_t lv_calendar_gregorian_to_chinese(lv_calendar_date_t * greg uint8_t index; bool leep_month; - lv_calendar_chinese_t chinese_calendar; if(year < 1901 || year > 2099) { - chinese_calendar.leep_month = 0; - chinese_calendar.today.year = 2000; - chinese_calendar.today.month = 1; - chinese_calendar.today.day = 1; - return chinese_calendar; + chinese_time->leep_month = 0; + chinese_time->today.year = 2000; + chinese_time->today.month = 1; + chinese_time->today.day = 1; + return; } if(((calendar_chinese_table[year - 1901] & 0x0060) >> 5) == 1) @@ -274,11 +272,10 @@ lv_calendar_chinese_t lv_calendar_gregorian_to_chinese(lv_calendar_date_t * greg day = days_per_month - by_spring + 1; } - chinese_calendar.today.day = day; - chinese_calendar.today.month = month; - chinese_calendar.today.year = year; - chinese_calendar.leep_month = leep_month; - return chinese_calendar; + chinese_time->today.day = day; + chinese_time->today.month = month; + chinese_time->today.year = year; + chinese_time->leep_month = leep_month; } /********************** diff --git a/src/widgets/calendar/lv_calendar_chinese.h b/src/widgets/calendar/lv_calendar_chinese.h index 8d5b174ab..fb7a1bc0e 100644 --- a/src/widgets/calendar/lv_calendar_chinese.h +++ b/src/widgets/calendar/lv_calendar_chinese.h @@ -21,6 +21,15 @@ extern "C" { * DEFINES *********************/ +/********************** + * TYPEDEFS + **********************/ + +typedef struct { + lv_calendar_date_t today; + bool leep_month; +} lv_calendar_chinese_t; + /********************** * GLOBAL PROTOTYPES **********************/ @@ -41,10 +50,10 @@ const char * lv_calendar_get_day_name(lv_calendar_date_t * gregorian); /** * Get the chinese time of the gregorian time (reference: https://www.cnblogs.com/liyang31tg/p/4123171.html) - * @param gregorian need to convert to chinese time in gregorian time - * @return return the chinese time of the gregorian time + * @param gregorian_time need to convert to chinese time in gregorian time + * @param chinese_time the chinese time convert from gregorian time */ -lv_calendar_chinese_t lv_calendar_gregorian_to_chinese(lv_calendar_date_t * gregorian); +void lv_calendar_gregorian_to_chinese(lv_calendar_date_t * gregorian_time, lv_calendar_chinese_t * chinese_time); /********************** * MACROS