Используйте функцию календаря для создания новых объектов Date, используя getTime()
:
import java.util.GregorianCalendar;
import java.util.Date;
Calendar cal = new GregorianCalendar();
cal.add(Calendar.DAY_OF_MONTH, -7);
Date sevenDaysAgo = cal.getTime();
Оказывается, использование препроцессора GNU C (cpp) напрямую (а не через gcc) обеспечивает больший контроль над выводом. Используя это, я смог обработать исходные файлы подходящим образом ...
Вот пример:
cpp -C -P -DSUBPROJECT Input.cs Output.cs
Я пытался заставить компилятор C / C ++, поставляемый с Visual Studio, делать что-то подобное, но после этого отказался. некоторое время ...
Мне неизвестен препроцессор для C #, который позволил бы вам экспортировать подмножество исходного кода без его сборки.
Однако вы сможете достичь того же эффекта, используя шаблон генерации кода. Просто измените директивы препроцессора на соответствующий эквивалент шаблона.
Visual Studio 2008 имеет встроенный инструмент генерации кода под названием T4 . Есть и другие сторонние варианты, такие как CodesmithTools или бесплатный MyGeneration.Net
Я не верю, что есть какие-либо флаги для csc или msc (монокомпилятор) для вывода предварительно обработанных файлов.
Если бы мне пришлось это сделать, а это было бы небольшим подмножеством Я бы скомпилировал, а затем использовал Reflector , чтобы декомпилировать обратно на C # и экспортировать файлы. Если у вас много файлов, существует надстройка Reflector под названием FileGenerator for Reflector .
К сожалению, это не будет точной копией вашей кодовой базы - он переформатирует весь код, и вы потеряете все комментарии.
Возможно Не будет ли проще и, что более идиоматично, C #, создавать интерфейсы и иметь разные реализации этих интерфейсов? Один набор, который можно упаковать в виде библиотеки и распространять?