}
else
{
- r = ConvertRRuleByDayStringToDayOfWeekAndWeekOfMonth(pByDay, weekOfMonth, dayOfWeek);
- SysTryReturn(NID_SCL, r == E_SUCCESS, null, E_INVALID_ARG, "[%s] Invalid argument is used. byday = %s", GetErrorMessage(E_INVALID_ARG), pByDay);
+ if(pByDay != null)
+ {
+ r = ConvertRRuleByDayStringToDayOfWeekAndWeekOfMonth(pByDay, weekOfMonth, dayOfWeek);
+ SysTryReturn(NID_SCL, r == E_SUCCESS, null, E_INVALID_ARG, "[%s] Invalid argument is used. byday = %s", GetErrorMessage(E_INVALID_ARG), pByDay);
+
+ pRecurrence->SetWeekOfMonth(weekOfMonth);
+ pRecurrence->SetDayOfWeek(dayOfWeek);
+ }
+ else
+ {
+ DateTime startTime = GetStartTime();
- pRecurrence->SetWeekOfMonth(weekOfMonth);
- pRecurrence->SetDayOfWeek(dayOfWeek);
+ dayOfMonth = startTime.GetDay();
+ pRecurrence->SetDayOfMonth(dayOfMonth);
+ }
}
break;
}
else
{
- r = ConvertRRuleByDayStringToDayOfWeekAndWeekOfMonth(pByDay, weekOfMonth, dayOfWeek);
- SysTryReturn(NID_SCL, r == E_SUCCESS, null, E_INVALID_ARG, "[%s] Invalid argument is used. byday = %s", GetErrorMessage(E_INVALID_ARG), pByDay);
+ if(pByDay != null)
+ {
+ r = ConvertRRuleByDayStringToDayOfWeekAndWeekOfMonth(pByDay, weekOfMonth, dayOfWeek);
+ SysTryReturn(NID_SCL, r == E_SUCCESS, null, E_INVALID_ARG, "[%s] Invalid argument is used. byday = %s", GetErrorMessage(E_INVALID_ARG), pByDay);
- pRecurrence->SetWeekOfMonth(weekOfMonth);
- pRecurrence->SetDayOfWeek(dayOfWeek);
+ pRecurrence->SetWeekOfMonth(weekOfMonth);
+ pRecurrence->SetDayOfWeek(dayOfWeek);
+ }
+ else
+ {
+ DateTime startTime = GetStartTime();
+
+ dayOfMonth = startTime.GetDay();
+ monthOfYear = startTime.GetMonth();
+
+ pRecurrence->SetDayOfMonth(dayOfMonth);
+ }
}
pRecurrence->SetMonthOfYear(monthOfYear);