Използване на ParseExact(str, format), AddDays(count) и ToString(format)
Здравейте можете ли да ми обясните как се използват тези методи.Става въпрос за следната задача : Пресмятане с дати: 1000 дни на Земята
Здравейте можете ли да ми обясните как се използват тези методи.Става въпрос за следната задача : Пресмятане с дати: 1000 дни на Земята
ParseExact(str, format):
Първият параметър e стрингът, от който искаш трансформираш в DateTime, а вторият задава формата, който се очаква (напр. "yyMMdd hhmmss"). Впрочем мисля, че има и трети параметър за културата...
Идеята на метода е, че очакваш точно определен формат на датата, който е различен от стандартните формати(можеш да ги провериш в MSDN).
AddDays(count):
Добавяш стойност, отговаряща на брой дни към текущата дата.
ToString(format):
Преобразува DateTime в стринг, като при това се задава точния формат (напр. "MM/dd/yyyy HH:mm:ss.fff"). Мисля, че има overload-нат метод, който да приема като параметър културата.
Препоръчвам ти да прегледаш стандартните формати на DateTime в MSDN.
Пример:
string dateStr = "11112002";
DateTimе date = DateTime.ParseExact(dateStr, "yyyyddMM", CultureInfo.InvariantCulture);
Console.WriteLine(date.ToString("dd.MM.yyyy")); // 20.02.1111 в конзолата
А как, да вземем дата, която въвежда потребителя ?
Ами запазваш в стринг променлива прочетеното от конзолата:
string dateStr = Console.ReadLine();
И после си я преобразуваш в DateTime с Parse(), TryParse() или ParseExact();
Може и директно като параметър в метода:
DateTime dt = DateTime.Parse(Console.ReadLine());
Благодаря !
Здравейте !
Разгледах решнията ви, но като използвам:
using System;
using System.Globalization;
class Program
{
static void Main(string[] args)
{
string input = Console.ReadLine();
DateTime date = DateTime.ParseExact(input, "ddMMyyyy", CultureInfo.InvariantCulture);
DateTime d2 = date.AddDays(999);
Console.WriteLine(d2);
}
}
ми дава
в judge . Предполагам че иска да задам входа на датата в формат dd-mm-yyyy и неуспявам да се справя. :(
Ще се радвам ако ми помогнете. Предварително благодаря
100/100 дава това:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
string input = Console.ReadLine();
DateTime date = DateTime.ParseExact(input, "dd-MM-yyyy", null);
DateTime d2 = date.AddDays(999);
Console.WriteLine(d2.ToString("dd-MM-yyyy"));
}
}
}
CultureInfo.InvariantCulture ми го маркира като непознато и го заместих с null, виждал съм я и преди така решена. После при изписването на екрана Console.Writeline .... трябва да бъде добавен и стринга, т.е. в какъв формат искаш да ти се изпише - d2.ToString("dd-MM-yyyy") и накрая в условието се иска да има по едно тире след ден и месец.
Ето и линк за тестване: https://judge.softuni.bg/Contests/Practice/Index/151#12
Няма нужда от ToString
благодаря