Loading...
Hristo_Penchev avatar Hristo_Penchev 389 Точки

Част от денонощието в принтиране на час

Работя над Exam Schedule. Излъгах го да вади часа в 12 часов формат, но не иска да ми изписва AM/PM.

Принтя със следния формат:

Console.WriteLine("{0:hh:mm tt}",startTime);

 

Изписва ми часа, но не и дали е преди или следобяд.

Тагове:
0
Programming Basics
Hristo_Penchev avatar Hristo_Penchev 389 Точки

Ето целият код:

http://pastebin.com/AG4DcWL2

 

startTime е декларана в DateTime тип, така че не виждам къде е проблемът.

Благодаря предварително!

0
quickben avatar quickben 966 Точки

Обек от тип DateTime e обект от "непроменлив" тип или на Английски език "immutable type" сиреч веднъж деклариран и инициализиран обект от този тип не може да бъде променян, просто стойноста на обекта може да бъде използвана за създаване на друг обект от съвместим тип.

Примерно ако направим един стринг string myName = "Zoro"; и искаме да променим стойноста на тази променлива(името) трябва да създадем нов стринг. string myNewName = myname + "the Fox"; Прочети малко за stack и heap и ще ти стане малко по-ясно.  

А за конкректната задача мисля, че кода говори повече от хиляда думи :)

ЦЪК (можеше да бъде направена и по-добре, но мисля, че би трябвало да ти отговори на конкретния въпрос)

0
Hristo_Penchev avatar Hristo_Penchev 389 Точки
Не мисля, че те разбирам: startTime = startTime.AddHours(durationHours); startTime = startTime.AddMinutes(durationMinutes); С тези редове без проблем коригирам стойността на променлива от тим DateTime.
0
quickben avatar quickben 966 Точки

"С тези редове без проблем коригирам стойността на променлива от тип DateTime"

Много си прав :)

Прочети това което съм ти препоръчал и ще ти стане ясно това което имам предивд има го и във видео лекцийте.

startTime = startTime.AddHours(durationHours);

startTime = startTime.AddMinutes(durationMinutes); 

Тези два реда предполагат, че вече има създаден обект(променлива) от тип DateTime на име startTime.

Самите два реда променят стойноста на самия обект която се пази динамичната памет(heap) а не самото име на променливата което се пази в stack-a, реално името на променливата е pointer(указател) към мястото в паметта в което се пази самата стойност на тази променлива.

Пич направи ми обект от тип DateTime с име StartTime и му задай тази стойност като заделиш място в паметта за него. 

DateTime startTime = new DateTime(стойност);

startTime = startTime.AddHours(durationHours);

Пич на този обект му добави часовете.

startTime = startTime.AddMinutes(durationMinutes); 

Пич на този обект му добави минути.

И да реално на пръв поглед ти се струва така, че стойноста на обекта е променена но в реалност е променен само адреса към паметта към който сочи името на променливата(затова казах,че името е само указател към мястото в паметта където се пази стойноста на обекта а не името му) 

Както казах прочети относно това как даден тип променливи се репрезенират в паметта на компютъра и ще ти стане много по-ясно :)

 тази тема би ти отговорила най-правилно на конкретния въпрос

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.