# 设置日历和历法 ## 使用场景 ä¸åŒåœ°åŒºçš„用户使用ä¸åŒçš„æ—¥åŽ†ï¼Œå¤§å¤šæ•°åœ°åŒºä½¿ç”¨å…¬åŽ†ï¼Œä¹Ÿæœ‰äº›åœ°åŒºçš„ç”¨æˆ·ä½¿ç”¨å…¶ä»–æ—¥åŽ†ï¼Œä¾‹å¦‚å†œåŽ†ã€ä¼Šæ–¯å…°åŽ†æˆ–å¸Œä¼¯æ¥åŽ†ã€‚æ¤å¤–,日历上的时间和日期也会éšç€æ—¶åŒºå’Œå¤ä»¤æ—¶çš„ä¸åŒè€Œæ”¹å˜ã€‚å› æ¤ï¼Œç”¨æˆ·åº”è®¾ç½®ç¬¦åˆæœ¬åœ°ä¹ 惯的日历。国际化æä¾›äº†[Calendar](../reference/apis-localization-kit/js-apis-i18n.md#calendar8)类,å¯ä»¥è®¾ç½®æ—¥åŽ†ç±»åž‹ã€æ—¥æœŸã€å¹´æœˆæ—¥ã€æ—¶åŒºã€ä¸€å‘¨çš„起始日期ã€ä¸€å¹´ä¸ç¬¬ä¸€å‘¨çš„æœ€å°å¤©æ•°ã€åˆ¤æ–具体æŸä¸€å¤©åœ¨æ—¥åކ䏿˜¯å¦ä¸ºå‘¨æœ«ã€è®¡ç®—相差天数ç‰ã€‚在应用开å‘过程ä¸ï¼Œå¼€å‘者å¯ä»¥æ ¹æ®ä¸šåŠ¡éœ€æ±‚é€‰æ‹©ä½¿ç”¨ä¸åŒåŠŸèƒ½ã€‚ ## 开呿¥éª¤ 以查看公历对应的农历日期为例,说明[Calendar](../reference/apis-localization-kit/js-apis-i18n.md#calendar8)类接å£ä½¿ç”¨æ–¹æ³•。 1. 导入模å—。 ```ts import { i18n } from '@kit.LocalizationKit'; ``` 2. 公历相关用法。 ```ts let calendar : i18n.Calendar = i18n.getCalendar("zh-Hans", "gregory"); //设置日历对象的日期 calendar.setTime(new Date(2022, 5, 13, 8, 0, 0)); calendar.setTime(10540800000); // è®¾ç½®æ—¥åŽ†å¯¹è±¡çš„å¹´ã€æœˆã€æ—¥ã€æ—¶ã€åˆ†ã€ç§’ calendar.set(2022, 5, 13, 8, 0, 0); // 设置日历对象的时区 calendar.setTimeZone("Asia/Shanghai"); // èŽ·å–æ—¥åŽ†å¯¹è±¡çš„æ—¶åŒº let timezone: string = calendar.getTimeZone(); // Asia/Shanghai // èŽ·å–æ—¥åŽ†å¯¹è±¡çš„ä¸€å‘¨èµ·å§‹æ—¥ let firstDayOfWeek : number = calendar.getFirstDayOfWeek(); // 1 // 设置æ¯ä¸€å‘¨çš„èµ·å§‹æ—¥ calendar.setFirstDayOfWeek(1); // 获å–一年ä¸ç¬¬ä¸€å‘¨çš„æœ€å°å¤©æ•° let minimalDaysInFirstWeek : number = calendar.getMinimalDaysInFirstWeek(); // 1 // 设置一年ä¸ç¬¬ä¸€å‘¨çš„æœ€å°å¤©æ•° calendar.setMinimalDaysInFirstWeek(3); // èŽ·å–æ—¥åŽ†å¯¹è±¡ä¸ä¸Žfield相关è”的值 let value: number = calendar.get("year"); // 2022 // èŽ·å–æ—¥åŽ†å¯¹è±¡æœ¬åœ°åŒ–åç§° let calendarName: string = calendar.getDisplayName("zh-Hans"); // 公历 // åˆ¤æ–æŒ‡å®šçš„æ—¥æœŸåœ¨æ—¥åކ䏿˜¯å¦ä¸ºå‘¨æœ« let isWeekend : boolean= calendar.isWeekend(new Date(2023, 9, 15)); // true // åœ¨æ—¥åŽ†çš„ç»™å®šå—æ®µè¿›è¡ŒåР凿“作 calendar.set(2023, 10, 15); calendar.add("date", 2); calendar.get("date"); // 17 // 比较日历和指定日期相差的天数 calendar.compareDays(new Date(2023, 10, 15)); // -3 ``` 3. 获å–公历对应的农历日期。 ```ts let calendar : i18n.Calendar = i18n.getCalendar("zh-Hans", "chinese"); //将公历信æ¯è®¾ç½®åˆ°calendar对象 calendar.setTime(new Date(2023, 6, 25, 8, 0, 0)); //获å–农历年月日 calendar.get("year"); // 返回干支纪年40,范围1-60 calendar.get("month"); // 结果为5,指6月 calendar.get("date"); // 8æ—¥ ``` **表1** 支æŒçš„æ—¥åŽ†ç±»åž‹ | 类型 | 䏿–‡åç§° | | -------- | -------- | | buddhist | 佛历 | | chinese | 农历 | | coptic | 科普特历 | | ethiopic | 埃塞俄比亚历 | | hebrew | 希伯æ¥åކ | | gregory | 公历 | | indian | å°åº¦åކ | | islamic_civil | ä¼Šæ–¯å…°å¸Œå‰æ¥åކ | | islamic_tbla | 伊斯兰天文历 | | islamic_umalqura | 伊斯兰历(乌姆库拉) | | japanese | 日本历 | | persian | 波斯历 | <!--RP1--><!--RP1End-->