如何獲取正在進行中的月份的最後一天4gl?如何獲得正在進行中的月份日期4gl
4
A
回答
9
/* the last day of this month is one day less than the first day of next month
*
* so add one month to the first day of this month and then subtract one day.
*
*/
function lastDay returns date (input d as date):
return add-interval(date(month(d), 1, year(d)), 1, "month") - 1.
end.
0
PROCEDURE getEndOfMonth:
DEFINE INPUT PARAMETER lv-date AS DATE.
DEFINE OUTPUT PARAMETER lv-monthEnd AS DATE.
lv-monthEnd = DATE(MONTH(lv-date), 31, YEAR(lv-date)) NO-ERROR.
IF lv-monthEnd = ? THEN DO:
lv-monthEnd = DATE(MONTH(lv-date), 30, YEAR(lv-date)) NO-ERROR.
IF lv-monthEnd = ? THEN DO:
lv-monthEnd = DATE(MONTH(lv-date), 29, YEAR(lv-date)) NO-ERROR.
IF lv-monthEnd = ? THEN
lv-monthEnd = DATE(MONTH(lv-date), 28, YEAR(lv-date)) NO-ERROR.
END.
END.
END.
0
如果你沒有你的平臺上「間隔」 - 這會做的一樣好:
DEFINE VARIABLE start-date AS DATE NO-UNDO.
DEFINE VARIABLE end-of-month AS DATE NO-UNDO.
ASSIGN
start-date = DATE(2, 15, 2012)
.
ASSIGN
end-of-month = DATE(MONTH(start-date), 20, YEAR(start-date)) + 15
end-of-month = end-of-month - DAY(end-of-month)
.
+0
如果您的開始日期是2012年3月15日,則此操作將失敗。 –
+0
沒有更多。 :) –
1
DEF VAR dt-ref AS DATE NO-UNDO.
DEF VAR dt-end-of-month AS DATE NO-UNDO.
ASSIGN dt-ref = DATE(2,12,2012)
.
ASSIGN dt-ref = dt-ref + 33
dt-end-of-month = DATE(MONTH(dt-ref),1,YEAR(dt-ref)) - 1.
0
一個簡單的一個,走在最後一天可能如果它失敗了,最後一天是前一天:
def var i as int.
def var v_eom as date.
Do i = 27 to 31:
v_eom = date(month(today), i, year(today)) no-error.
If error-status:error then do:
v_eom = date(month(today), (i - 1), year(today)) no-error.
leave.
End.
End.
0
DEFINE VAR date1 AS DATE INIT 12/12/2015。
DEFINE VAR datelast AS INT。
DEFINE VAR mont AS int。
mont = (MONTH (date1) + 1).
IF mont > 12 THEN
DO:
datelast = 31.
END.
ELSE
DO:
datelast = (DATE(STRING (1) + "/" + (STRING(mont)) + "/" + STRING(YEAR(date1))) - DATE(STRING((1)) + "/" + STRING(month(date1)) + "/" + STRING(YEAR(date1)))).
END.
MESSAGE datelast VIEW-AS ALERT-BOX INFO BUTTONS OK.
0
最簡單的方法是使用ADD-INTERVAL函數。
ldEndDate = ADD-INTERVAL(ldBeginDate, 1, "months") - 1.
0
定義變量給出的最新AS DATE NO-UNDO。
PROMPT-FOR給定日期。 (add-interval(date(month(INPUT given-date),1,year(INPUT given-date)),1,「month」) - 1)標籤「Lastdate」。
2
DEF VAR d-Dataa AS DATE NO-UNDO FORMAT "99/99/9999".
DEF VAR c-Datai AS CHAR NO-UNDO.
DEF VAR d-Datai AS DATE NO-UNDO FORMAT "99/99/9999".
DEF VAR c-Dataf AS CHAR NO-UNDO.
DEF VAR d-Dataf AS DATE NO-UNDO FORMAT "99/99/9999".
d-Dataa=TODAY.
c-Datai=("01/" + STRING(MONTH(d-Dataa),"99/") + STRING(YEAR(d-Dataa),"9999")).
d-Datai=DATE(c-Datai).
IF MONTH(d-Dataa) = 12 THEN
c-Dataf="01/01/" + STRING(YEAR(d-Dataa) + 1,"9999").
ELSE
c-Dataf=STRING(DAY(d-Datai),"99/") + STRING(MONTH(d-Dataa)+ 1,"99/") + STRING(YEAR(d-Dataa),"9999").
d-Dataf=DATE(c-Dataf) - 1.
MESSAGE
"Dia Atual: " STRING(d-Dataa, "99/99/9999") SKIP
"Primeiro dia do Mês: " c-Datai SKIP
"Ultimo dia do Mês: " STRING(d-Dataf, "99/99/9999") SKIP
VIEW-AS ALERT-BOX
相關問題
- 1. 如何在java中獲得20日格式的月份日期?
- 2. 如何獲得日期選取正確的月份Android的
- 3. 如何在Oracle中獲得當前月份的特定日期?
- 4. 如何獲得當前日期,月份,年份在斯卡拉
- 5. 如何獲得截止日期的月份和年份
- 6. 如何在php中獲得年齡,月份和日期?
- 7. Ember日期獲得月份,年份和日期
- 8. 如何獲得C中給定月份的所有日期#
- 9. 如何從日期獲得年份和月份 - PHP
- 10. 如何獲得月份到今天的排除日期(從月份到昨天?)
- 11. 如何從ISO日期和星期獲得月份
- 12. 如何在java中獲得給定月份和年份的最後日期
- 13. 如何獲得java中給定月份的最小日期和最大日期
- 14. 從日期獲取月份的日期
- 15. 如何獲取月份的月份發生日期
- 16. 如何僅獲取日期的年份和月份部分進行比較?
- 17. 如何從2日期起獲得月數和月數的所有月份?
- 18. 如何在jQuery UI datepicker中獲取日期,月份,年份?
- 19. 與mongodb中的月份或年份進行比較的日期
- 20. 如何獲得兩個日期之間的月份集合?
- 21. 如何獲得給定日期的月份
- 22. perl如何獲得完整的月份和日期? ?
- 23. 如何從日期查詢中獲取日期和月份?
- 24. 如何在日期中添加月份
- 25. 如何獲得c#的月底日期?
- 26. 如何獲得日期,月份和年份在不同的標籤
- 27. R如何對特定月份的日期進行排序
- 28. 如何總週日期爲給定月份獲得SQL
- 29. 日曆 - 獲取月份和月份的日期
- 30. 格式化日期時間字段正在進行-4gl
add-interval()需要版本10或更高版本。 –