pub const DATETIME: &str = "// stdlib/datetime.aether\n// Aether \u{65e5}\u{671f}\u{65f6}\u{95f4}\u{5de5}\u{5177}\u{5e93}\n// \u{63d0}\u{4f9b}\u{65e5}\u{671f}\u{65f6}\u{95f4}\u{5904}\u{7406}\u{529f}\u{80fd}\n\n// ==================== \u{5e38}\u{91cf}\u{5b9a}\u{4e49} ====================\n\nSet DAYS_IN_MONTH [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nSet MONTH_NAMES [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\nSet MONTH_NAMES_CN [\"\u{4e00}\u{6708}\", \"\u{4e8c}\u{6708}\", \"\u{4e09}\u{6708}\", \"\u{56db}\u{6708}\", \"\u{4e94}\u{6708}\", \"\u{516d}\u{6708}\", \"\u{4e03}\u{6708}\", \"\u{516b}\u{6708}\", \"\u{4e5d}\u{6708}\", \"\u{5341}\u{6708}\", \"\u{5341}\u{4e00}\u{6708}\", \"\u{5341}\u{4e8c}\u{6708}\"]\nSet WEEKDAY_NAMES [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]\nSet WEEKDAY_NAMES_CN [\"\u{661f}\u{671f}\u{65e5}\", \"\u{661f}\u{671f}\u{4e00}\", \"\u{661f}\u{671f}\u{4e8c}\", \"\u{661f}\u{671f}\u{4e09}\", \"\u{661f}\u{671f}\u{56db}\", \"\u{661f}\u{671f}\u{4e94}\", \"\u{661f}\u{671f}\u{516d}\"]\n\n// ==================== \u{95f0}\u{5e74}\u{5224}\u{65ad} ====================\n\n// \u{5224}\u{65ad}\u{662f}\u{5426}\u{4e3a}\u{95f0}\u{5e74}\nFunc DT_IS_LEAP_YEAR(YEAR) {\n // \u{80fd}\u{88ab}4\u{6574}\u{9664}\u{4f46}\u{4e0d}\u{80fd}\u{88ab}100\u{6574}\u{9664}\u{ff0c}\u{6216}\u{8005}\u{80fd}\u{88ab}400\u{6574}\u{9664}\n Set DIV_4 ((YEAR % 4) == 0)\n Set DIV_100 ((YEAR % 100) == 0)\n Set DIV_400 ((YEAR % 400) == 0)\n \n Return ((DIV_4 && !DIV_100) || DIV_400)\n}\n\n// ==================== \u{5929}\u{6570}\u{8ba1}\u{7b97} ====================\n\n// \u{83b7}\u{53d6}\u{6307}\u{5b9a}\u{6708}\u{4efd}\u{7684}\u{5929}\u{6570}\nFunc DT_DAYS_IN_MONTH(YEAR, MONTH) {\n If (MONTH < 1 || MONTH > 12) {\n Return 0\n }\n \n If (MONTH == 2) {\n Set IS_LEAP DT_IS_LEAP_YEAR(YEAR)\n If (IS_LEAP) {\n Return 29\n } Else {\n Return 28\n }\n }\n \n Return DAYS_IN_MONTH[MONTH - 1]\n}\n\n// \u{8ba1}\u{7b97}\u{67d0}\u{5e74}\u{67d0}\u{6708}\u{67d0}\u{65e5}\u{662f}\u{5f53}\u{5e74}\u{7684}\u{7b2c}\u{51e0}\u{5929}\nFunc DT_DAY_OF_YEAR(YEAR, MONTH, DAY) {\n Set TOTAL 0\n Set M 1\n \n While (M < MONTH) {\n Set DAYS DT_DAYS_IN_MONTH(YEAR, M)\n Set TOTAL (TOTAL + DAYS)\n Set M (M + 1)\n }\n \n Set TOTAL (TOTAL + DAY)\n Return TOTAL\n}\n\n// \u{8ba1}\u{7b97}\u{4e00}\u{5e74}\u{6709}\u{591a}\u{5c11}\u{5929}\nFunc DT_DAYS_IN_YEAR(YEAR) {\n Set IS_LEAP DT_IS_LEAP_YEAR(YEAR)\n If (IS_LEAP) {\n Return 366\n } Else {\n Return 365\n }\n}\n\n// ==================== \u{65e5}\u{671f}\u{9a8c}\u{8bc1} ====================\n\n// \u{9a8c}\u{8bc1}\u{65e5}\u{671f}\u{662f}\u{5426}\u{5408}\u{6cd5}\nFunc DT_IS_VALID_DATE(YEAR, MONTH, DAY) {\n If (YEAR < 1 || YEAR > 9999) {\n Return False\n }\n \n If (MONTH < 1 || MONTH > 12) {\n Return False\n }\n \n Set MAX_DAYS DT_DAYS_IN_MONTH(YEAR, MONTH)\n If (DAY < 1 || DAY > MAX_DAYS) {\n Return False\n }\n \n Return True\n}\n\n// \u{9a8c}\u{8bc1}\u{65f6}\u{95f4}\u{662f}\u{5426}\u{5408}\u{6cd5}\nFunc DT_IS_VALID_TIME(HOUR, MINUTE, SECOND) {\n If (HOUR < 0 || HOUR > 23) {\n Return False\n }\n \n If (MINUTE < 0 || MINUTE > 59) {\n Return False\n }\n \n If (SECOND < 0 || SECOND > 59) {\n Return False\n }\n \n Return True\n}\n\n// ==================== \u{65e5}\u{671f}\u{6bd4}\u{8f83} ====================\n\n// \u{6bd4}\u{8f83}\u{4e24}\u{4e2a}\u{65e5}\u{671f}\u{ff08}\u{8fd4}\u{56de} -1: \u{65e5}\u{671f}1\u{65e9}, 0: \u{76f8}\u{7b49}, 1: \u{65e5}\u{671f}1\u{665a}\u{ff09}\nFunc DT_COMPARE_DATE(YEAR1, MONTH1, DAY1, YEAR2, MONTH2, DAY2) {\n If (YEAR1 < YEAR2) {\n Return -1\n } Elif (YEAR1 > YEAR2) {\n Return 1\n }\n \n If (MONTH1 < MONTH2) {\n Return -1\n } Elif (MONTH1 > MONTH2) {\n Return 1\n }\n \n If (DAY1 < DAY2) {\n Return -1\n } Elif (DAY1 > DAY2) {\n Return 1\n }\n \n Return 0\n}\n\n// ==================== \u{65e5}\u{671f}\u{5dee}\u{503c}\u{8ba1}\u{7b97} ====================\n\n// \u{8ba1}\u{7b97}\u{4e24}\u{4e2a}\u{65e5}\u{671f}\u{4e4b}\u{95f4}\u{7684}\u{5929}\u{6570}\u{5dee}\u{ff08}\u{7b80}\u{5316}\u{7248}\u{672c}\u{ff0c}\u{5047}\u{8bbe} date1 <= date2\u{ff09}\nFunc DT_DAYS_BETWEEN(YEAR1, MONTH1, DAY1, YEAR2, MONTH2, DAY2) {\n // \u{5982}\u{679c}\u{662f}\u{540c}\u{4e00}\u{5929}\n If (YEAR1 == YEAR2 && MONTH1 == MONTH2 && DAY1 == DAY2) {\n Return 0\n }\n \n Set TOTAL_DAYS 0\n \n // \u{5982}\u{679c}\u{662f}\u{540c}\u{4e00}\u{5e74}\n If (YEAR1 == YEAR2) {\n Set DAY_OF_YEAR1 DT_DAY_OF_YEAR(YEAR1, MONTH1, DAY1)\n Set DAY_OF_YEAR2 DT_DAY_OF_YEAR(YEAR2, MONTH2, DAY2)\n Return (DAY_OF_YEAR2 - DAY_OF_YEAR1)\n }\n \n // \u{8ba1}\u{7b97}\u{7b2c}\u{4e00}\u{5e74}\u{5269}\u{4f59}\u{7684}\u{5929}\u{6570}\n Set DAYS_IN_YEAR1 DT_DAYS_IN_YEAR(YEAR1)\n Set DAY_OF_YEAR1 DT_DAY_OF_YEAR(YEAR1, MONTH1, DAY1)\n Set TOTAL_DAYS (DAYS_IN_YEAR1 - DAY_OF_YEAR1)\n \n // \u{8ba1}\u{7b97}\u{4e2d}\u{95f4}\u{5b8c}\u{6574}\u{5e74}\u{4efd}\u{7684}\u{5929}\u{6570}\n Set Y (YEAR1 + 1)\n While (Y < YEAR2) {\n Set DAYS_IN_Y DT_DAYS_IN_YEAR(Y)\n Set TOTAL_DAYS (TOTAL_DAYS + DAYS_IN_Y)\n Set Y (Y + 1)\n }\n \n // \u{8ba1}\u{7b97}\u{6700}\u{540e}\u{4e00}\u{5e74}\u{7684}\u{5929}\u{6570}\n Set DAY_OF_YEAR2 DT_DAY_OF_YEAR(YEAR2, MONTH2, DAY2)\n Set TOTAL_DAYS (TOTAL_DAYS + DAY_OF_YEAR2)\n \n Return TOTAL_DAYS\n}\n\n// ==================== \u{65e5}\u{671f}\u{683c}\u{5f0f}\u{5316} ====================\n\n// \u{5c06}\u{6570}\u{5b57}\u{8865}\u{96f6}\u{5230}\u{4e24}\u{4f4d}\nFunc DT_PAD_TWO(NUM) {\n If (NUM < 10) {\n Return (\"0\" + TO_STRING(NUM))\n }\n Return TO_STRING(NUM)\n}\n\n// \u{5c06}\u{6570}\u{5b57}\u{8865}\u{96f6}\u{5230}\u{56db}\u{4f4d}\nFunc DT_PAD_FOUR(NUM) {\n If (NUM < 10) {\n Return (\"000\" + TO_STRING(NUM))\n } Elif (NUM < 100) {\n Return (\"00\" + TO_STRING(NUM))\n } Elif (NUM < 1000) {\n Return (\"0\" + TO_STRING(NUM))\n }\n Return TO_STRING(NUM)\n}\n\n// \u{683c}\u{5f0f}\u{5316}\u{65e5}\u{671f}\u{4e3a} YYYY-MM-DD\nFunc DT_FORMAT_DATE(YEAR, MONTH, DAY) {\n Set YEAR_STR DT_PAD_FOUR(YEAR)\n Set MONTH_STR DT_PAD_TWO(MONTH)\n Set DAY_STR DT_PAD_TWO(DAY)\n \n Return (YEAR_STR + \"-\" + MONTH_STR + \"-\" + DAY_STR)\n}\n\n// \u{683c}\u{5f0f}\u{5316}\u{65f6}\u{95f4}\u{4e3a} HH:MM:SS\nFunc DT_FORMAT_TIME(HOUR, MINUTE, SECOND) {\n Set HOUR_STR DT_PAD_TWO(HOUR)\n Set MINUTE_STR DT_PAD_TWO(MINUTE)\n Set SECOND_STR DT_PAD_TWO(SECOND)\n \n Return (HOUR_STR + \":\" + MINUTE_STR + \":\" + SECOND_STR)\n}\n\n// \u{683c}\u{5f0f}\u{5316}\u{65e5}\u{671f}\u{65f6}\u{95f4}\u{4e3a} YYYY-MM-DD HH:MM:SS\nFunc DT_FORMAT_DATETIME(YEAR, MONTH, DAY, HOUR, MINUTE, SECOND) {\n Set DATE_STR DT_FORMAT_DATE(YEAR, MONTH, DAY)\n Set TIME_STR DT_FORMAT_TIME(HOUR, MINUTE, SECOND)\n \n Return (DATE_STR + \" \" + TIME_STR)\n}\n\n// ==================== \u{65e5}\u{671f}\u{89e3}\u{6790} ====================\n\n// \u{4ece} YYYY-MM-DD \u{683c}\u{5f0f}\u{5b57}\u{7b26}\u{4e32}\u{89e3}\u{6790}\u{5e74}\u{4efd}\nFunc DT_PARSE_YEAR(DATE_STR) {\n If (STRLEN(DATE_STR) < 10) {\n Return 0\n }\n \n Set YEAR_STR STRSLICE(DATE_STR, 0, 4)\n // \u{7b80}\u{5316}\u{ff1a}\u{5047}\u{8bbe}\u{5b57}\u{7b26}\u{4e32}\u{683c}\u{5f0f}\u{6b63}\u{786e}\u{ff0c}\u{76f4}\u{63a5}\u{8f6c}\u{6362}\n // \u{5b9e}\u{9645}\u{5e94}\u{8be5}\u{5b9e}\u{73b0}\u{5b57}\u{7b26}\u{4e32}\u{8f6c}\u{6570}\u{5b57}\u{51fd}\u{6570}\n Return YEAR_STR\n}\n\n// \u{4ece} YYYY-MM-DD \u{683c}\u{5f0f}\u{5b57}\u{7b26}\u{4e32}\u{89e3}\u{6790}\u{6708}\u{4efd}\nFunc DT_PARSE_MONTH(DATE_STR) {\n If (STRLEN(DATE_STR) < 10) {\n Return 0\n }\n \n Set MONTH_STR STRSLICE(DATE_STR, 5, 7)\n Return MONTH_STR\n}\n\n// \u{4ece} YYYY-MM-DD \u{683c}\u{5f0f}\u{5b57}\u{7b26}\u{4e32}\u{89e3}\u{6790}\u{65e5}\u{671f}\nFunc DT_PARSE_DAY(DATE_STR) {\n If (STRLEN(DATE_STR) < 10) {\n Return 0\n }\n \n Set DAY_STR STRSLICE(DATE_STR, 8, 10)\n Return DAY_STR\n}\n\n// ==================== \u{6708}\u{4efd}\u{540d}\u{79f0} ====================\n\n// \u{83b7}\u{53d6}\u{6708}\u{4efd}\u{82f1}\u{6587}\u{540d}\u{79f0}\nFunc DT_MONTH_NAME(MONTH) {\n If (MONTH < 1 || MONTH > 12) {\n Return \"\"\n }\n \n Return MONTH_NAMES[MONTH - 1]\n}\n\n// \u{83b7}\u{53d6}\u{6708}\u{4efd}\u{4e2d}\u{6587}\u{540d}\u{79f0}\nFunc DT_MONTH_NAME_CN(MONTH) {\n If (MONTH < 1 || MONTH > 12) {\n Return \"\"\n }\n \n Return MONTH_NAMES_CN[MONTH - 1]\n}\n\n// ==================== \u{661f}\u{671f}\u{8ba1}\u{7b97} ====================\n\n// \u{4f7f}\u{7528} Zeller \u{516c}\u{5f0f}\u{8ba1}\u{7b97}\u{661f}\u{671f}\u{51e0}\u{ff08}0=\u{5468}\u{65e5}, 1=\u{5468}\u{4e00}, ..., 6=\u{5468}\u{516d}\u{ff09}\nFunc DT_DAY_OF_WEEK(YEAR, MONTH, DAY) {\n // Zeller \u{516c}\u{5f0f}\u{ff1a}w = (d + 2*m + 3*(m+1)/5 + y + y/4 - y/100 + y/400 + 1) % 7\n // \u{9700}\u{8981}\u{5c06}1\u{6708}\u{548c}2\u{6708}\u{770b}\u{4f5c}\u{4e0a}\u{4e00}\u{5e74}\u{7684}13\u{6708}\u{548c}14\u{6708}\n \n Set Y YEAR\n Set M MONTH\n \n If (M == 1 || M == 2) {\n Set M (M + 12)\n Set Y (Y - 1)\n }\n \n Set C (Y / 100)\n Set Y_CENTURY (Y % 100)\n \n Set W (DAY + (2 * M) + (3 * (M + 1) / 5) + Y_CENTURY + (Y_CENTURY / 4) - (C * 2) + (C / 4))\n Set W ((W % 7 + 7) % 7)\n \n Return W\n}\n\n// \u{83b7}\u{53d6}\u{661f}\u{671f}\u{51e0}\u{7684}\u{82f1}\u{6587}\u{540d}\u{79f0}\nFunc DT_WEEKDAY_NAME(YEAR, MONTH, DAY) {\n Set DAY_NUM DT_DAY_OF_WEEK(YEAR, MONTH, DAY)\n Return WEEKDAY_NAMES[DAY_NUM]\n}\n\n// \u{83b7}\u{53d6}\u{661f}\u{671f}\u{51e0}\u{7684}\u{4e2d}\u{6587}\u{540d}\u{79f0}\nFunc DT_WEEKDAY_NAME_CN(YEAR, MONTH, DAY) {\n Set DAY_NUM DT_DAY_OF_WEEK(YEAR, MONTH, DAY)\n Return WEEKDAY_NAMES_CN[DAY_NUM]\n}\n\n// ==================== \u{65e5}\u{671f}\u{52a0}\u{51cf} ====================\n\n// \u{7ed9}\u{65e5}\u{671f}\u{52a0}\u{4e0a}\u{6307}\u{5b9a}\u{5929}\u{6570}\u{ff08}\u{7b80}\u{5316}\u{7248}\u{672c}\u{ff09}\nFunc DT_ADD_DAYS(YEAR, MONTH, DAY, DAYS_TO_ADD) {\n Set RESULT_YEAR YEAR\n Set RESULT_MONTH MONTH\n Set RESULT_DAY (DAY + DAYS_TO_ADD)\n \n // \u{5904}\u{7406}\u{65e5}\u{671f}\u{6ea2}\u{51fa}\n While (True) {\n Set MAX_DAYS DT_DAYS_IN_MONTH(RESULT_YEAR, RESULT_MONTH)\n \n If (RESULT_DAY <= MAX_DAYS) {\n Break\n }\n \n Set RESULT_DAY (RESULT_DAY - MAX_DAYS)\n Set RESULT_MONTH (RESULT_MONTH + 1)\n \n If (RESULT_MONTH > 12) {\n Set RESULT_MONTH 1\n Set RESULT_YEAR (RESULT_YEAR + 1)\n }\n }\n \n Set RESULT []\n Set RESULT PUSH(RESULT, RESULT_YEAR)\n Set RESULT PUSH(RESULT, RESULT_MONTH)\n Set RESULT PUSH(RESULT, RESULT_DAY)\n \n Return RESULT\n}\n\n// \u{7ed9}\u{65e5}\u{671f}\u{52a0}\u{4e0a}\u{6307}\u{5b9a}\u{6708}\u{6570}\nFunc DT_ADD_MONTHS(YEAR, MONTH, DAY, MONTHS_TO_ADD) {\n Set RESULT_YEAR YEAR\n Set RESULT_MONTH (MONTH + MONTHS_TO_ADD)\n Set RESULT_DAY DAY\n \n // \u{5904}\u{7406}\u{6708}\u{4efd}\u{6ea2}\u{51fa}\n While (RESULT_MONTH > 12) {\n Set RESULT_MONTH (RESULT_MONTH - 12)\n Set RESULT_YEAR (RESULT_YEAR + 1)\n }\n \n // \u{786e}\u{4fdd}\u{65e5}\u{671f}\u{5408}\u{6cd5}\u{ff08}\u{4f8b}\u{5982}1\u{6708}31\u{65e5}\u{52a0}1\u{4e2a}\u{6708}\u{4e0d}\u{80fd}\u{662f}2\u{6708}31\u{65e5}\u{ff09}\n Set MAX_DAYS DT_DAYS_IN_MONTH(RESULT_YEAR, RESULT_MONTH)\n If (RESULT_DAY > MAX_DAYS) {\n Set RESULT_DAY MAX_DAYS\n }\n \n Set RESULT []\n Set RESULT PUSH(RESULT, RESULT_YEAR)\n Set RESULT PUSH(RESULT, RESULT_MONTH)\n Set RESULT PUSH(RESULT, RESULT_DAY)\n \n Return RESULT\n}\n\n// \u{7ed9}\u{65e5}\u{671f}\u{52a0}\u{4e0a}\u{6307}\u{5b9a}\u{5e74}\u{6570}\nFunc DT_ADD_YEARS(YEAR, MONTH, DAY, YEARS_TO_ADD) {\n Set RESULT_YEAR (YEAR + YEARS_TO_ADD)\n Set RESULT_MONTH MONTH\n Set RESULT_DAY DAY\n \n // \u{5904}\u{7406}2\u{6708}29\u{65e5}\u{7684}\u{7279}\u{6b8a}\u{60c5}\u{51b5}\n If (MONTH == 2 && DAY == 29) {\n Set IS_LEAP DT_IS_LEAP_YEAR(RESULT_YEAR)\n If (!IS_LEAP) {\n Set RESULT_DAY 28\n }\n }\n \n Set RESULT []\n Set RESULT PUSH(RESULT, RESULT_YEAR)\n Set RESULT PUSH(RESULT, RESULT_MONTH)\n Set RESULT PUSH(RESULT, RESULT_DAY)\n \n Return RESULT\n}\n\n// ==================== \u{65f6}\u{95f4}\u{8ba1}\u{7b97} ====================\n\n// \u{8ba1}\u{7b97}\u{4e24}\u{4e2a}\u{65f6}\u{95f4}\u{70b9}\u{4e4b}\u{95f4}\u{7684}\u{79d2}\u{6570}\u{5dee}\nFunc DT_SECONDS_BETWEEN(HOUR1, MIN1, SEC1, HOUR2, MIN2, SEC2) {\n Set TOTAL1 (HOUR1 * 3600 + MIN1 * 60 + SEC1)\n Set TOTAL2 (HOUR2 * 3600 + MIN2 * 60 + SEC2)\n \n Return (TOTAL2 - TOTAL1)\n}\n\n// \u{5c06}\u{79d2}\u{6570}\u{8f6c}\u{6362}\u{4e3a}\u{5c0f}\u{65f6}\nFunc DT_SECONDS_TO_HOURS(SECONDS) {\n Return (SECONDS / 3600)\n}\n\n// \u{5c06}\u{79d2}\u{6570}\u{8f6c}\u{6362}\u{4e3a}\u{5206}\u{949f}\nFunc DT_SECONDS_TO_MINUTES(SECONDS) {\n Return (SECONDS / 60)\n}\n\n// ==================== \u{5e74}\u{9f84}\u{8ba1}\u{7b97} ====================\n\n// \u{6839}\u{636e}\u{51fa}\u{751f}\u{65e5}\u{671f}\u{8ba1}\u{7b97}\u{5e74}\u{9f84}\u{ff08}\u{7b80}\u{5316}\u{7248}\u{672c}\u{ff09}\nFunc DT_CALCULATE_AGE(BIRTH_YEAR, BIRTH_MONTH, BIRTH_DAY, CURRENT_YEAR, CURRENT_MONTH, CURRENT_DAY) {\n Set AGE (CURRENT_YEAR - BIRTH_YEAR)\n \n // \u{5982}\u{679c}\u{8fd8}\u{6ca1}\u{5230}\u{751f}\u{65e5}\u{ff0c}\u{51cf}1\u{5c81}\n If (CURRENT_MONTH < BIRTH_MONTH) {\n Set AGE (AGE - 1)\n } Elif (CURRENT_MONTH == BIRTH_MONTH && CURRENT_DAY < BIRTH_DAY) {\n Set AGE (AGE - 1)\n }\n \n Return AGE\n}\n\n// ==================== \u{5b63}\u{5ea6}\u{8ba1}\u{7b97} ====================\n\n// \u{83b7}\u{53d6}\u{6708}\u{4efd}\u{6240}\u{5c5e}\u{7684}\u{5b63}\u{5ea6}\u{ff08}1-4\u{ff09}\nFunc DT_GET_QUARTER(MONTH) {\n If (MONTH >= 1 && MONTH <= 3) {\n Return 1\n } Elif (MONTH >= 4 && MONTH <= 6) {\n Return 2\n } Elif (MONTH >= 7 && MONTH <= 9) {\n Return 3\n } Elif (MONTH >= 10 && MONTH <= 12) {\n Return 4\n }\n \n Return 0\n}\n\n// \u{83b7}\u{53d6}\u{5b63}\u{5ea6}\u{7684}\u{7b2c}\u{4e00}\u{5929}\nFunc DT_QUARTER_START(YEAR, QUARTER) {\n Set MONTH 1\n \n If (QUARTER == 2) {\n Set MONTH 4\n } Elif (QUARTER == 3) {\n Set MONTH 7\n } Elif (QUARTER == 4) {\n Set MONTH 10\n }\n \n Set RESULT []\n Set RESULT PUSH(RESULT, YEAR)\n Set RESULT PUSH(RESULT, MONTH)\n Set RESULT PUSH(RESULT, 1)\n \n Return RESULT\n}\n\n// ==================== \u{5de5}\u{4f5c}\u{65e5}\u{8ba1}\u{7b97} ====================\n\n// \u{5224}\u{65ad}\u{662f}\u{5426}\u{4e3a}\u{5468}\u{672b}\nFunc DT_IS_WEEKEND(YEAR, MONTH, DAY) {\n Set DAY_NUM DT_DAY_OF_WEEK(YEAR, MONTH, DAY)\n Return (DAY_NUM == 0 || DAY_NUM == 6)\n}\n\n// \u{5224}\u{65ad}\u{662f}\u{5426}\u{4e3a}\u{5de5}\u{4f5c}\u{65e5}\nFunc DT_IS_WEEKDAY(YEAR, MONTH, DAY) {\n Set IS_WEEKEND DT_IS_WEEKEND(YEAR, MONTH, DAY)\n Return (!IS_WEEKEND)\n}\n\n";Expand description
日期时间库