Как увеличить/уменьшить дата символов интервал в C#
Как увеличить/Уменьшить расстояние между датой символов.
D -> -> D/M -> M/Y -> Y -> Y - Y ->
должен выглядеть следующим образом:
0 8 0 8 2 0 1 6
Как увеличить/уменьшить дата символов интервал в C#
Как увеличить/Уменьшить расстояние между датой символов.
D -> -> D/M -> M/Y -> Y -> Y - Y ->
должен выглядеть следующим образом:
0 8 0 8 2 0 1 6
Если я правильно понимаю, это выглядит, как вы ищете выходной форматировщиком
string.Format можно использовать в этом случае:
var someDate = new System.DateTime(2016, 8, 8);
string.Format("{0,10}:{1,20}:{2,30}", someDate.Month, someDate.Day, someDate.Year)
Выход:
" 8: 8: 2016"
Вы можете введите любое значение {0, XX} в зависимости от того, сколько отступов требуется для заданного параметра.
Кроме того выезд date and time formatters.
Something как это достаточно хорошо?
var padded = string.Join(" ", DateTime.Now.ToString("dd MM yyyy").ToCharArray())
Выход:
0 8 0 8 2 0 1 6
Вот еще один вариант:
public class CharWithPadding
{
public char Char;
public int Padding;
}
...
//Populate a list with the current date, and default padding
var paddingDictionary = DateTime.Now.ToString("dd MM yyyy")
.ToCharArray()
.Select(c => new CharWithPadding { Char = c, Padding = 2 })
.ToList();
//Add extra padding to specific point in the date-string
paddingDictionary[2].Padding = 10;
var output = string.Join("", paddingDictionary.Select(cwp => cwp.Char + new string(' ', cwp.Padding)));
Возможно, вы захотите использовать шрифт с фиксированным пространством, чтобы промежуток был согласован (например, Courier). Тем не менее, я собираюсь угадать, что будет легче сломать дату на 8 символов и напечатать каждый отдельно. –
это хороший ответ dave bish, я пробовал это, и он работает, для этого я даю вам голосование. , но проблема в том, что у меня есть несколько форм, и их дата-боксы имеют разные размеры. иногда 08/08/20101 печатает правильно, но 6 либо слишком далеко от коробки, либо слишком близко, в этом случае я застрял в этой опции. если я могу индивидуально разместить каждого персонажа, это лучшая вещь. – Patrick
@SteveWellens У меня первоначально была эта идея: либо я разбиваю их на каждый отдельно, либо использую ответ, предоставленный санджай-сутар, с интервалом, контролируемым цифровыми вверх или текстовыми полями. – Patrick
Что вы спрашиваете о либо называется kerning, или, скорее всего letter spacing. Однако, если вы знаете точное местоположение на форме вы печатаете на, вы, вероятно, гораздо лучше создавать и позиционирование отдельных элементов из кусочков DateTime
объекта, а не пытаться настроить интервал:
DateTime FormDate = DateTime.Now;
Box1.Text = FormDate.DayToString();
Box2.Text = FormDate.Month.ToString();
и т. Д.
Многие шрифты имеют разную ширину каждого символа, включая ''; иногда даже разные пробелы между комбинациями букв. Если шрифт (или форма) когда-либо изменяется или если этот код когда-либо используется повторно, жизнь будет намного проще, если ваше решение не зависит от шрифта.
Я вижу, точнее, я хочу независимый интервал каждого персонажа. – Patrick
Зачем вам это нужно? –
@SteveWellens Я хочу напечатать на форме и убедиться, что она напечатана в полях. – Patrick
Можете ли вы сказать, каково ваше фактическое требование? Кажется, это проблема [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). –