Creating custom week start and week number
You really don't need to iterate, just do the (mod 7) math to get the correct date directly:

public static DateTime getFirstWorkDateOfYear(int year, int firstDay) {
    ReadWritableDateTime readWritableDateTime = new MutableDateTime(year, 1, 1, 0, 0, 0, 0);
    int doW = readWritableDateTime.getDayOfWeek();
    readWritableDateTime.addDays((7 + firstDay - doW) % 7);
    return readWritableDateTime.toDateTime();
}

public static DateTime getStartOfWorkWeek2(DateTime dateTime, int firstDay) {
    ReadWritableDateTime readWritableDateTime = dateTime.toMutableDateTime();
    readWritableDateTime.setMillisOfDay(0);
    int doW = readWritableDateTime.getDayOfWeek();
    readWritableDateTime.addDays(((firstDay - doW - 7) % 7));
    return readWritableDateTime.toDateTime();
}


The technique proposed is not particularly dependent on which date library you use; with minor variations it can be applied to normal Date or Calendar types.  While I like joda, in general, I have no opinion on its performance on Android.