HarmonyOS 日历重复规则如何设置?

使用ohos.calendarManager添加日历提醒,如何添加每周一、周三、周五的提醒?

阅读 599
1 个回答

开始时间startTime需为一三五,根据date.getTime()具体日期设置,endTime为结束时间,这里设置为了10s。

import { BusinessError } from '@kit.BasicServicesKit';
import { calendarManager } from '@kit.CalendarKit';
import { calendarMgr } from '../entryability/EntryAbility';
let calendar : calendarManager.Calendar | undefined = undefined;
const date = new Date();
const event: calendarManager.Event[] =[{
  title: 'MyEvent1',
  type: calendarManager.EventType.NORMAL,
  startTime: date.getTime()-24*60 * 60 * 1000,
  endTime: date.getTime()-24*60 * 60 * 1000+10000,
  recurrenceRule: {
    recurrenceFrequency:calendarManager.RecurrenceFrequency.WEEKLY,
    daysOfWeek:[1, 3, 5]
  }
},
]

@Entry
@Component
struct Index62 {
  @State message: string = 'Hello World';

  build() {
    RelativeContainer() {
      Text(this.message)
        .id('Index62HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
        .onClick(()=>{
          calendarMgr?.getCalendar(async (err: BusinessError, data:calendarManager.Calendar) => {
            if (err) {
              console.error(`Failed to get calendar, err -> ${JSON.stringify(err)}`);
            } else {
              console.info(`Succeeded to get calendar, data -> ${JSON.stringify(data)}`);
              calendar = data;
              await calendar.addEvents(event).then(()=>{

              }).catch((err: BusinessError) => {
                console.error(`Failed to filter by title, err -> ${JSON.stringify(err)}`);
              });
              const filter = calendarManager.EventFilter.filterByTitle('MyEvent');
              calendar.getEvents(filter).then((data: calendarManager.Event[]) => {
                console.info(`Succeeded to filter by title, data -> ${JSON.stringify(data)}`);
              }).catch((err: BusinessError) => {
                console.error(`Failed to filter by title, err -> ${JSON.stringify(err)}`);
              });
            }
          });
        })
    }
    .height('100%')
    .width('100%')
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进