Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
RedsT
0 / 0 / 0
Регистрация: 28.03.2016
Сообщений: 27
1

Добавить n дней к дате в виде строки dd.mm.yy

03.05.2016, 13:39. Просмотров 1022. Ответов 6
Метки нет (Все метки)

Из строки содержащей корректно заданную дату в формате "dd.mm.yy" где dd-день, mm-месяц, yy-год, получить строку с датой, отстоящей от заданной на n дней вперед, в том же формате. Если возможно сделайте пожалуйста в режиме Windows Forms.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2016, 13:39
Ответы с готовыми решениями:

Добавить к дате несколько рабочих дней
простое добавление дней понятно. но как добавить только рабочие дни? понятно,...

Определить количество дней по дате
Здравствуйте, не получается полученный результат даты подсчитать в оставшихся...

Операция добавления дней к дате
Ребят, надо создать метод, который добавлял дни к написанной ранее дате, и...

Прибавить к дате несколько дней
Помогите с задачей. Вычисление даты через заданное количество дней. Есть...

Прибавление рабочих дней к дате
как исключить выходные дни? Label_1.Text =...

6
Hikari
Хитрая блондиночка $)
1451 / 963 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
03.05.2016, 13:47 2
Лучший ответ Сообщение было отмечено RedsT как решение

Решение

На счет формочек не скажу, нет инструментов при себе, Но конвертацию можно попробовать провернуть так:
C#
1
2
string s="03.05.2016";
s=DateTime.Parse(s).AddDays(n).ToString();
1
RedsT
0 / 0 / 0
Регистрация: 28.03.2016
Сообщений: 27
03.05.2016, 13:51  [ТС] 3
Если возможно, сделайте поподробней, а то как то не совсем понимаю как и что тут происходит.
0
SeIZVeIZ
687 / 632 / 268
Регистрация: 08.02.2014
Сообщений: 1,954
Завершенные тесты: 3
03.05.2016, 13:56 4
На лекция не балду гоняй, а слушай что тебе рассказывают и будешь понимать всё
из примера выше просто конвертируется строка в дату, с помощью встроенной функции добавляется количество дней и приводится всё назад к строке.
1
OwenGlendower
Супер-модератор
Эксперт .NET
9492 / 8299 / 3550
Регистрация: 17.03.2014
Сообщений: 16,538
Записей в блоге: 1
03.05.2016, 14:07 5
Лучший ответ Сообщение было отмечено RedsT как решение

Решение

RedsT,
C#
1
2
3
4
5
int n = 45;
string dateString = "03.05.16";
DateTime date = DateTime.ParseExact(dateString, @"dd\.MM\.yy", CultureInfo.InvariantCulture);
date = date.AddDays(n);
dateString = date.ToString(@"dd\.MM\.yy", CultureInfo.InvariantCulture);
1
RedsT
0 / 0 / 0
Регистрация: 28.03.2016
Сообщений: 27
09.05.2016, 02:15  [ТС] 6
что это означает и как используется можете объяснить? CultureInfo.InvariantCulture

Добавлено через 33 минуты
Будет выглядеть примерно так?
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
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        private void button1_Click(object sender, EventArgs e)
        {
            
            string s = "03.05.2016";
            s = DateTime.Parse(s).ToString();
            
 
            listBox1.Items.Add("date = " + Convert.ToString(s));
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            int n = int.Parse(textBox1.Text);
            string s = "03.05.2016";
            s = DateTime.Parse(s).AddDays(n).ToString();
            listBox2.Items.Clear();
            listBox2.Items.Add("date = " + Convert.ToString(s));
        }
    }
}
0
OwenGlendower
Супер-модератор
Эксперт .NET
9492 / 8299 / 3550
Регистрация: 17.03.2014
Сообщений: 16,538
Записей в блоге: 1
09.05.2016, 05:16 7
Цитата Сообщение от RedsT Посмотреть сообщение
что это означает и как используется можете объяснить? CultureInfo.InvariantCulture
Хранение даты в виде строке подразумевает наличие формата который так или иначе завязан на региональные настройки. Объект CultureInfo именно их и хранит. CultureInfo.InvariantCulture означает т.н. инвариантные региональные настройки. То есть такие настройки которые одинаковые на любом компьютере. Они хорошо подходят дла разборы даты в формате день.месяц.год. Вместо неё можно было использовать CultureInfo.GetCultureInfo("ru-RU").

Цитата Сообщение от RedsT Посмотреть сообщение
Будет выглядеть примерно так?
Примерно да. Хотя ты зря убрал использование CultureInfo. При работе с датой лучше её указывать явно.

Цитата Сообщение от RedsT Посмотреть сообщение
C#
1
2
string s = "03.05.2016";
s = DateTime.Parse(s).ToString();
Какой смысл превращать строку в дату и затем обратно в аналогичную строку?

Цитата Сообщение от RedsT Посмотреть сообщение
Convert.ToString(s)
Переменная s это уже строка. Convert.ToString не нужен.
1
09.05.2016, 05:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2016, 05:16

Перегрузка , прибавить к дате n код-во дней
не могу реализовать перегрузку n дней , не понимаю как это сделать , код будет...

Прибавление к дате определенного кол-ва дней
Помогите исправить ошибку. Цель такая - вводим дату с клавиатуры, месяц из цифр...

Прибавить к дате определенное количество рабочих дней
Доброго времени суток! Как можно прибавить к текущей дате N-ое количество...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru