如何根据变量初始值更改日期格式?
How to change date format based on variable initial value?
我使用下面的程序根据变量 (cDataFormat) 中的值设置更改日期格式。但问题是这可以由用户更改,程序应该相应地采取行动
DEFINE VARIABLE cDate AS DATE NO-UNDO.
DEFINE VARIABLE clogindate AS CHARACTER NO-UNDO.
DEFINE VARIABLE cDateformat AS CHARACTER NO-UNDO INIT "YYYY/MM/DD". /*this can be changed by
user*/
cDate = DATE(11/27/2020).
IF cDateformat = "YYYY/MM/DD" THEN clogindate = string(year(cDate),"9999") +
string(month(cDate),"99") + string(day(cDate),"99").
ELSE IF cDateformat = "YY/MM/DD" THEN clogindate = string(year(cDate),"99") +
string(month(cDate),"99") + string(day(cDate),"99").
ELSE IF cDateformat = "MM/DD/YY" THEN clogindate = string(month(cDate),"99") +
string(day(cDate),"99") + string(year(cDate),"9999").
/* AND SO ON...... as you know writing so much lines not the smartest way..Please give any idea*/
DISP clogindate.
不使用 IF THEN ELSE IF ELSE IF
,而是使用 CASE
语句。可读性更好。
当您只有模式 MM
、DD
、YY
和 YYYY
时,您可以使用 REPLACE
语句来减少代码行.
clogindate = cDateformat.
clogindate = REPLACE(clogindate, "YYYY", STRING(YEAR(cDate), "9999")).
clogindate = REPLACE(clogindate, "YY", STRING(YEAR(cDate), "99")).
clogindate = REPLACE(clogindate, "MM", STRING(MONTH(cDate), "99")).
clogindate = REPLACE(clogindate, "DD", STRING(DAY(cDate), "99")).
我使用下面的程序根据变量 (cDataFormat) 中的值设置更改日期格式。但问题是这可以由用户更改,程序应该相应地采取行动
DEFINE VARIABLE cDate AS DATE NO-UNDO.
DEFINE VARIABLE clogindate AS CHARACTER NO-UNDO.
DEFINE VARIABLE cDateformat AS CHARACTER NO-UNDO INIT "YYYY/MM/DD". /*this can be changed by
user*/
cDate = DATE(11/27/2020).
IF cDateformat = "YYYY/MM/DD" THEN clogindate = string(year(cDate),"9999") +
string(month(cDate),"99") + string(day(cDate),"99").
ELSE IF cDateformat = "YY/MM/DD" THEN clogindate = string(year(cDate),"99") +
string(month(cDate),"99") + string(day(cDate),"99").
ELSE IF cDateformat = "MM/DD/YY" THEN clogindate = string(month(cDate),"99") +
string(day(cDate),"99") + string(year(cDate),"9999").
/* AND SO ON...... as you know writing so much lines not the smartest way..Please give any idea*/
DISP clogindate.
不使用 IF THEN ELSE IF ELSE IF
,而是使用 CASE
语句。可读性更好。
当您只有模式 MM
、DD
、YY
和 YYYY
时,您可以使用 REPLACE
语句来减少代码行.
clogindate = cDateformat.
clogindate = REPLACE(clogindate, "YYYY", STRING(YEAR(cDate), "9999")).
clogindate = REPLACE(clogindate, "YY", STRING(YEAR(cDate), "99")).
clogindate = REPLACE(clogindate, "MM", STRING(MONTH(cDate), "99")).
clogindate = REPLACE(clogindate, "DD", STRING(DAY(cDate), "99")).