2 / 2 / 0
Регистрация: 18.09.2016
Сообщений: 44
1

Преобразование даты число/число в Число/Текст

16.10.2016, 19:44. Показов 5044. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста массив может содержать два типа даты
день/месяц(число/число) или день/месяц/год(число/число/число)
Как преобразовать что бы на выходи получить
день/месяц(число/текст) или день/месяц/год(число/текст/число)

Пример
1.1-->1 Января
1.1.2017-->1 Января 2017
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2016, 19:44
Ответы с готовыми решениями:

Создать метод, в котором одномерный массив. И заменить самое большое число и самое большое число по модулю на число 0
Создать метод, в котором одномерный массив. И заменить самое большое число и самое большое число по...

Преобразование в число
Здравствуйте! Новичок в программирование, подскажите как обработать посылку с дальнейшем...

Дано натуральное число: найдите число десятков в его десятичной записи
Дано натуральное число. Найдите число десятков в его десятичной записи (то есть вторую справа цифру...

Преобразовать каждое число последовательности чтобы из него получалось наибольшее число
с клавиатуры вводится последовательность трехзначных чисел. Преобразовать каждое число так, чтобы...

10
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
16.10.2016, 19:53 2
Legenda374, http://www.csharp-examples.net... -datetime/
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
16.10.2016, 19:59 3
стесняюсь просить, а массив чего у вас может содержать...?
0
2 / 2 / 0
Регистрация: 18.09.2016
Сообщений: 44
16.10.2016, 20:05  [ТС] 4
String , если это был бы DateTime, то тогда и проблемы бы не было
Я пробовал преобразовать таким способом ошибку не выдает, но и результата тоже
C#
1
userArr[i].date = String.Format("{0:d MMM, yyyy}", Convert.ToDateTime(userArr[i].date.Replace('.', '/')));
0
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
16.10.2016, 20:09 5
Legenda374, https://www.cyberforum.ru/post9648250.html
0
2 / 2 / 0
Регистрация: 18.09.2016
Сообщений: 44
16.10.2016, 20:10  [ТС] 6
Не осознал(
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
16.10.2016, 20:13 7
C#
1
arr[i].Split('.')[0] - это число, [1] - месяц ,[2] - год
0
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
16.10.2016, 20:27 8
Legenda374,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using System.Collections.Generic;
class Program
{
    static void Main(string[] args)
    {
        var pattern = new Dictionary<int, string>()
        {
            [1] = "Января",
            [2] = "Февраля"
        };
        string[] dates = { "1.1", "1.2.2017" };
        for(int i =0;i<dates.Length;i++)
        {
            var tmp = dates[i].Split('.');
            string replaceBy;
            if (pattern.TryGetValue(int.Parse(tmp[1]), out replaceBy))
                dates[i] = tmp.Length < 3
                    ? $"{tmp[0]}.{replaceBy}"
                    : $"{tmp[0]}.{replaceBy}.{tmp[2]}";
        }
        foreach (var date in dates)
            Console.WriteLine(date);
 
        Console.ReadKey();
    }
}
0
Администратор
Эксперт .NET
16988 / 13348 / 5208
Регистрация: 17.03.2014
Сообщений: 27,295
Записей в блоге: 1
16.10.2016, 20:28 9
Лучший ответ Сообщение было отмечено Legenda374 как решение

Решение

Legenda374,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
string[] dates = {"1.1", "1.1.2017"};
foreach (string s in dates)
{
    DateTime d;
    if (DateTime.TryParseExact(s, "d.M", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out d))
    {
        Console.WriteLine(d.ToString("d MMMM", CultureInfo.GetCultureInfo("ru-RU")));
    }
    else if (DateTime.TryParseExact(s, "d.M.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out d))
    {
        Console.WriteLine(d.ToString("d MMMM yyyy", CultureInfo.GetCultureInfo("ru-RU")));
    }
}
Если важен регистр названия месяца, то сделай свой массив названий и бери его оттуда.
1
2 / 2 / 0
Регистрация: 18.09.2016
Сообщений: 44
16.10.2016, 20:40  [ТС] 10
OwenGlendower,
То что нужно спасибо большое

Можешь прокомментировать данную строку
C#
1
DateTime.TryParseExact(userArr[i].bdate, "d.M", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out d)
0
Администратор
Эксперт .NET
16988 / 13348 / 5208
Регистрация: 17.03.2014
Сообщений: 27,295
Записей в блоге: 1
16.10.2016, 21:15 11
Legenda374, метод TryParseExact пытается преобразовать строку в дату используя переданный формат ("d.M" - число дня, разделитель, число месяца) и культуру. Дополнительный параметр DateTimeStyles.RoundtripKind нужен чтобы дата парсилась как есть.
0
16.10.2016, 21:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2016, 21:15
Помогаю со студенческими работами здесь

Преобразует введенное пользователем десятичное число в число в указанной системе счисления (от 2 до 10)
Помогите решить Написать программу, которая преобразует введенное пользователем десятичное число...

Дано целое число n. преобразовать это число так, что если ...
Дано целое число n. преобразовать это число так что если подрят встречаются 2 одинаковых цифры то...

Задано натуральное число N Найти ближайшее число Фибоначчи к заданному числу
Написать программу на языке С#, которая решает поставленную задачу с использованием цикла do/while ...

Вычислить значение арифметического выражение вида <число> + <число> =, содержащееся в строке
Упражнение 6. Дана строка, содержащая арифметическое выражение вида &lt;число&gt; + &lt;число&gt; =. Требуется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru