我有一個要求,任何日期(DD.MM.YYYY)應該轉換爲月份的最後日期(例如:如果日期是20.01.1999那麼它應該轉換爲31.01.1999)?任何日期應該轉換爲cobol的月份日期結束?
0
A
回答
3
究竟是什麼問題? COBOL還是算法?我猜測它的COBOL。
我不會給你一個直接的答案,因爲你是 明顯傾向於語言,並且有自己的具體細節 有價值。
這裏有一對夫婦的提示:
在WORKING-STORAGE
定義日期字段,以便您可以挑選出日,月和年作爲單獨項目。例如:
01 TEST-DATE.
05 TEST-DAY PIC 99.
05 PIC X.
05 TEST-MONTH PIC 99.
05 PIC X.
05 TEST-YEAR PIC 9999.
請注意未命名的PIC X
字段。這些包含日/月/年分隔符。他們不需要給出數據名稱,因爲 您不需要引用它們。有時這種類型的數據項的名稱是 FILLER
,但名稱是可選的。
請閱讀EVALUATE
聲明。這是IBM企業COBOL手冊的link至 。在所有版本的COBOL中,EVALUATE
的描述應該相似。
MOVE
感興趣的日期TO TEST-DATE
。現在您可以將年,月和日作爲單個項目參考:TEST-DAY
,TEST-MONTH
和TEST-YEAR
。
使用EVALUATE
測試月份(TEST-MONTH
)。如果月份是30天的月份,那麼MOVE
30到TEST-DAY
。 31天的月份也一樣。二月是閏年的特例。一旦確定該月份是2月份,則根據測試結果, 測試TEST-YEAR
至determine if it is a leap year 和MOVE
28或29至TEST-DAY
。
現在TEST-DATE
將包含您正在尋找的日期。 MOVE
它到任何需要的地方。
0
您可以使用函數integer-of-date給出返回與任何日期對應的整數值。假設您的輸入日期格式爲ddmmyyyy,並且您希望輸出格式相同。可以說日期是20011999,你想要的是31011999.你可以按照下面的步驟。
- 將輸入日期的月份增加1。 (20 * 02 * 1999年)
- 讓天爲01,並使用函數整數過期(* * 021999)
- 減一整數返回。
- 使用函數date-of-integer將會給你所需的結果。
請注意,在這裏您需要添加一個檢查來處理12月份的月份。
相關問題
- 1. 如何設置月份的起始日期和結束日期?
- 2. 月份和年份的日期轉換
- 3. 查找月份的開始日期和結束日期
- 4. 獲取某月份的開始日期和結束日期
- 5. 比較日期 - 結束日期應該大於開始日期
- 6. 轉換一個月名在日期月份數,兩位數日期和月份
- 7. PostgreSql +日期格式將YYYY-MM-DD轉換爲日期,日期月份
- 8. PHP:將年中的日期轉換爲月份和月中的日期
- 9. 月結束日期VBA
- 10. 如何將這種日期轉換爲月份日年格式?
- 11. 如何將日期轉換爲年,月,日日期格式
- 12. 如何計算月份的月結束日期 - SQL
- 13. R轉換日期到月份表示
- 14. 如何在xts中將數字年份月份轉換爲年份 - 月份 - 日期日期格式?
- 15. 如何egrep從該日期的月份?
- 16. 如何在Javascript中獲取月份的開始日期和結束日期?
- 17. 如何獲取當前月份的開始日期和結束日期(Swift 3)
- 18. sql查詢基於月結束日期生成月薪日期
- 19. 本月的開始日期和結束日期以及本年的開始日期和結束日期
- 20. 從任何日期格式將日期轉換爲完整日期格式(2016年7月27日星期二)
- 21. 大於指定日期(日期,月份,年份)的日期
- 22. 如何找到有結束日期比年份和月份
- 23. 從日期獲取月份的日期
- 24. 日期,月份的MySQL日期列
- 25. 如何獲取日期時間月開始和結束日期?
- 26. ISNULL日期月份
- 27. 我如何查詢開始日期/月份和結束日期/月份之間的價格
- 28. pickadate:結束日期應該提前1天到開始日期
- 29. 結束日期不應該大於開始日期?
- 30. 結束日期應該大於五天,隨後開始日期