https://www.epiusers.help/t/week-number-for-bpm/44480/2
I did it thank you
DateTime fromDate = Forecast_row.ForeDate.Date()??DateTime.MinValue;
DateTime startOfYear = fromDate.AddDays(-fromDate.Day + 1).AddMonths(-fromDate.Month + 1);
DateTime endOfYear = startOfYear.AddYears(1).AddDays(-1);
int[] iso8601Correction = { 7, 8, 9, 10, 4, 5, 6 };
int nds = fromDate.Subtract(startOfYear).Days + iso8601Correction[(int)startOfYear.DayOfWeek];
int wk = nds / 7;
DateTime NewDate = fromDate;
//-----------------------
switch (wk)
{
case 0:
// Return Week Number of Previous Year in some cases (1/1/2016)
NewDate = startOfYear.AddDays(-1);
startOfYear = fromDate.AddDays(-NewDate.Day + 1).AddMonths(-NewDate.Month + 1);
endOfYear = startOfYear.AddYears(1).AddDays(-1);
nds = NewDate.Subtract(startOfYear).Days + iso8601Correction[(int)startOfYear.DayOfWeek];
wk = nds / 7;
break;
case 53:
// Adjust
if (endOfYear.DayOfWeek < DayOfWeek.Thursday)
{
wk = 1;
}
else
wk = wk;
break;
}
//Display Week in Message
Epicor.Customization.Bpm.InfoMessage.Publish(wk.ToString());
}