Программа которая по заданному году и номеру месяца определяет количество дней в этом месяце

В Excel нет специальной функции, чтобы посчитать возраст, однако существует несколько различных способов его определения на основе даты рождения. Вы узнаете несколько приемов, как рассчитать его в количестве полных лет, в годах, месяцах и днях на текущий момент или на какой-то определённый момент времени. Мы объясним преимущества и недостатки каждого способа, покажем, как создать идеальную формулу расчета возраста в Экселе и настроить ее для решения некоторых конкретных задач.

В повседневной жизни вопрос «Сколько вам лет?» обычно подразумевает ответ, указывающий, сколько лет вы прожили. В Microsoft Excel вы можете создать формулу для исчисления точной продолжительности жизни в месяцах, днях, часах и даже минутах. Но давайте не будем нарушать традицию и научимся сначала считать по полным годам.

Основная формула Excel расчета для возраста в годах.

Как вы обычно определяете, сколько вам лет? Просто вычитая дату рождения из текущей. Этот традиционный подход, знакомый нам еще с детства, может также использоваться в Excel.

Возраст в Excel — в годах, месяцах, днях. Функция РАЗНДАТ

Чтобы отобразить количество прожитых лет, используйте один из предлагаемых методов округления десятичного числа до ближайшего целого:

Функция ЦЕЛОЕ округляет в меньшую сторону до ближайшего целого.

Округляет количество прожитых лет по стандартным правилам в зависимости от значения дробной части (более 0,5 — в большую сторону).

Округляет в меньшую сторону.

Отбрасывает дробную часть, оставляя только целое.

Во всех случаях ноль в формуле означает, что в возвращаемой цифре не должно быть ни одного десятичного разряда.

Недостатки: использование этого выражения в Экселе дает довольно точные результаты, но не безупречные. Деление на среднее число дней в году в большинстве случаев работает нормально, но иногда все же показывает неверный возраст. Например, если кто-то родился 29 февраля, а сейчас 28 февраля, программа сделает человека на один день старше.

В качестве альтернативы вы можете использовать в знаменателе 365,25 вместо 365, поскольку каждый четвертый год состоит из 366 дней. Однако и этот подход не идеален. Например, если вы рассчитываете возраст ребенка, который еще не прожил високосный год, деление на 365,25 дает неправильный результат.

Как определить возраст с функцией ДОЛЯГОДА.

Более надежный способ расчета, чем те, о которых мы говорили ранее, — это использование функции ДОЛЯГОДА (YEARFRAC в английском варианте), которая возвращает часть года, то есть количество целых дней между двумя датами.

Синтаксис здесь следующий:

YEARFRAC (дата_начала, дата_окончания, [базис])

Первые два аргумента очевидны и вряд ли требуют какого-либо дополнительного объяснения. А вот Базис — это аргумент, который определяет основу для подсчета дней.

Чтобы составить абсолютно точную формулу, передайте в ДОЛЯГОДА следующие значения:

ДАТЫ В EXCEL | РАЗНИЦА МЕЖДУ ДАТАМИ В ДНЯХ, МЕСЯЦАХ, ГОДАХ |С (ИЛИ БЕЗ) УЧЁТОМ ВЫХОДНЫХ И ПРАЗДНИКОВ

  • Дата_начала — дата рождения.
  • Дата_окончания — функция СЕГОДНЯ() для использования текущего момента времени.
  • Базис — используйте 1, которая предписывает Excel делить фактическое количество дней в месяце на фактическое количество дней в году. Никаких усредненных цифр типа 360 или 365 здесь не используется.

Учитывая вышеизложенное, формула Excel для расчета возраста по дате рождения выглядит следующим образом:

Читайте также:
Восстановите порядок работы программ оптического распознавания документов

Предполагая, что ДР вписан в ячейку B2, выражение принимает следующий вид:

Как и в предыдущем примере, результат также является десятичным числом. Чтобы исправить это, используйте любой из подходящих вам методов округления.

Итак, вот улучшенный вариант:

Метод округления можете выбрать сами.

Особенности применения этих функций мы уже рассмотрели выше.

Как узнать возраст в Excel при помощи РАЗНДАТ.

Еще один способ — использование функции РАЗНДАТ (DATEDIF):

дата_нач и дата_кон — две даты, разницу между которыми необходимо рассчитать,

Она может возвращать разницу в различных единицах времени, таких как годы, месяцы и дни, в зависимости от параметра, который вы задаете в аргументе:

  • Y — возвращает количество лет.
  • M — количество месяцев.
  • D — количество дней.
  • YM — возвращает месяцы, игнорируя дни и годы.
  • MD — разница в днях, игнорируя месяцы и годы.
  • YD — разница в днях, игнорируя годы.

Поскольку мы хотим подсчитать возраст в годах, мы используем параметр «Y»:

В этом примере день рождения записан в ячейке B2, и вы ссылаетесь на него в своей формуле возраста:

В этом случае дополнительная операция округления не требуется, так как РАЗНДАТ с аргументом «Y» сразу выводит количество лет.

Рассчитываем в днях, месяцах и годах.

Высчитывать можно не только количество лет, как это обычно принято, но и более мелкие единицы времени.

Давайте попробуем рассчитать полный возраст, который включает в себя дни, месяцы и годы.

Фактически, определение чьего-либо возраста на основе даты рождения является частным случаем расчета разницы в датах в Excel, где конечной датой является текущий момент времени. Итак, вы используете обычную функцию РАЗНДАТ:

Где В2 — дата рождения.

Ну а если нужно сделать совсем красиво, используйте более сложное выражение:

И вот что получится:

Более подробно об использовании функции РАЗНДАТ читайте в материале о расчете разности между датами в Excel.

Сколько вам будет на определённую дату?

Вы можете воспользоваться формулой РАЗНДАТ из предыдущего раздела, но вместо СЕГОДНЯ() используйте ссылку на ячейку, в которой и будет указано, на какой именно момент времени вы хотите определить возраст человека.

Кстати, аналогичным образом можно определять и величину трудового стажа.

Итак, вот как это может выглядеть:

Сколько вам будет лет в определенный год?

Эта формула полезна в ситуациях, когда полная дата для расчета не определена, и вы знаете только год.

Допустим, вы работаете с медицинской базой данных, и ваша цель – выяснить, сколько лет пациенту на момент последнего полного медицинского обследования.

Если предположить, что ДР указан в столбце B, начиная со строки 2, а год последнего медицинского осмотра находится в столбце C, то расчет выглядит следующим образом:

Поскольку точный срок медицинского осмотра не определен, вы используете функцию ДАТА с произвольным аргументом дня и месяца, например, DATА(C3; 1; 1).

Функция ДАТА извлекает номер года из ячейки С2, создает полную дату, используя введенные вами номера месяца и дня (в этом примере 1 января), и передает ее в РАЗНДАТ. В результате вы получаете сумму прожитых пациентом лет по состоянию на 1 января определенного года.

Узнайте дату, когда человек достигает N лет

Предположим, ваш друг родился 21 марта 1974 года. Как вам определить, когда ему исполняется 50 лет? Обычно вы просто добавляете 50 лет к ДР человека. В Excel вы делаете то же самое, используя ДАТА:

Где B2 — день рождения.

Вместо того, чтобы жестко указывать количество лет в формуле, вы можете сослаться на определенную ячейку, в которую ваши пользователи могут вводить сколько угодно лет.

Калькулятор возраста для Excel

Пользователям надстройки Ultimate Suite не нужно беспокоиться о создании своего собственного калькулятора возраста в Excel — это всего лишь пара щелчков мышью:

  1. Выберите ячейку, в которую вы хотите вставить формулу возраста, перейдите на вкладку «AblebitsTools»> группу «Date TimeWizard)» .
  2. Мастер даты и времени запустится, и вы перейдете прямо на вкладку «Возраст (Age)».
  3. Здесь вам нужно указать 3 параметра:
    • Данные о рождении в виде ссылки на ячейку или дату в формате дд/мм/гггг.
    • Рассчитывать возраст на сегодняшний день или на конкретную дату.
    • Выберите, следует ли рассчитывать возраст в днях, месяцах, годах, неделях, или в полном виде (лет, месяцев, дней).
    • Нажмите кнопку « Вставить формулу (InsertFormula)» .
    Читайте также:
    Что такое программа мать и дитя

    Формула мгновенно вставляется в выбранную ячейку, и вы можете дважды щелкнуть маркер заполнения, чтобы скопировать его вниз по столбцу.

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

    К сожалению, пока русской локализации нет, но вы легко можете заменить в формуле английские слова на русские и затем использовать ее там, где это необходимо.

    Либо вовсе не добавляйте текст и получите возраст в виде текста «лет/месяцев/дней» (см. ячейку B7 на скриншоте выше).

    Если вы хотите избавиться от нулевых единиц, таких как «0 дней», установите флажок «Не показывать нулевые значения».

    Также вы можете более подробно узнать о мастере даты и времени здесь.

    Если вам интересно протестировать этот калькулятор возраста, а также открыть для себя еще 60 надстроек для экономии времени в Excel, то можете загрузить пробную версию Ultimate Suite. Если вам понравились инструменты и вы решили получить лицензию, не пропустите это специальное предложение для читателей нашего сайта.

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

    Также рекомендуем почитать о работе с датами:

    Как перевести время в число — В статье рассмотрены различные способы преобразования времени в десятичное число в Excel. Вы найдете множество формул для преобразования времени в часы, минуты или секунды. Поскольку Microsoft Excel использует числовую систему для работы с временем, вы можете…

    Как посчитать время – разницу, сумму, добавить или вычесть — В статье рассматривается, как в Excel посчитать время. Вы найдете несколько полезных формул чтобы посчитать сумму времени, разницу во времени или сколько времени прошло и многое другое. Ранее мы внимательно рассмотрели…

    Формат времени в Excel — Вы узнаете об особенностях формата времени Excel, как записать его в часах, минутах или секундах, как перевести в число или текст, а также о том, как добавить время с помощью…

    Как вывести месяц из даты — На примерах мы покажем, как получить месяц из даты в таблицах Excel, преобразовать число в его название и наоборот, а также многое другое. Думаю, вы уже знаете, что дата в…

    Функция Excel СЕГОДНЯ — синтаксис и основные применения — Функция СЕГОДНЯ в Excel делает именно то, на что указывает ее имя — возвращает сегодняшнюю дату. Синтаксис ее настолько прост, насколько это вообще возможно — у нее вообще нет аргументов. Всякий…

    Как быстро вставить сегодняшнюю дату в Excel? — Это руководство показывает различные способы ввода дат в Excel. Узнайте, как вставить сегодняшнюю дату и время в виде статической метки времени или динамических значений, как автоматически заполнять столбец или строку…

    Количество рабочих дней между двумя датами в Excel — Довольно распространенная задача: определить количество рабочих дней в период между двумя датами – это частный случай расчета числа дней, который мы уже рассматривали ранее. Тем не менее, в Excel для…

    Как посчитать количество дней между датами в Excel? Примеры и советы. — Из этого обзора вы узнаете несколько быстрых и простых способов подсчета, сколько дней проходит между двумя датами в Excel. Вам интересно, сколько составляет разница в днях, месяцах и годах между…

    Читайте также:
    Определите что будет напечатано в результате выполнения следующего фрагмента программы

    Как преобразовать текст в дату в Excel или извлечь ее из сложной фразы? — Сейчас вы научитесь использовать функции Excel для преобразования текста в дату. Вы также узнаете, как это сделать без использования формул. Поскольку Excel — не единственное приложение, которое вы используете, иногда…

    Источник: mister-office.ru

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

    Если задано число N , задача состоит в том, чтобы найти количество дней, соответствующее каждому месяцу, где 1 — январь, 2 — февраль, 3 — март и т. Д.

    Примеры:

    Input: N = 12
    Output: 31 Days

    Input: N = 2
    Output: 28/29 Days

    Рекомендуется: сначала попробуйте свой подход в , прежде чем переходить к решению.

    Метод — 1: использование If Else:

    1. Получите входной месяц в виде числа N.
    2. Если N — одно из значений 1, 3, 5, 7, 8, 10, 12, выведите «31 день». .
    3. Если N — одно из значений 4, 6, 9, 11, выведите «30 дней». .
    4. Если N равно 2, выведите «28/29 дней». .
    5. В противном случае напечатайте «Недействительный месяц» .

    Источник: progler.ru

    Программа которая по заданному году и номеру месяца определяет количество дней в этом месяце

    Дата некоторого дня характеризуется тремя натуральными числами: g (год), m (порядковый номер месяца) и n(число). По заданным g, n и m определить дату предыдущего дня.
    Сделать программу через подпрограмму.

    var g,n,m:integer; procedure a; var g,n,m:integer; begin if g=1 then if n=1 then begin g:=31; n:=12; m:=m-1; end else begin n:=n-1; if n=1 then g:=31; if n=2 then g:=28; if n=3 then g:=31; if n=4 then g:=30; if n=5 then g:=31; if n=6 then g:=30; if n=7 then g:=31; if n=8 then g:=31; if n=9 then g:=30; if n=10 then g:=31; if n=11 then g:=30; if n=12 then g:=31; end else begin g:=g-1; end; end; begin writeln(‘введите дату в формате День.Месяц.Год’); readln(g,n,m); a; writeln(g,n,m); end.

    Он мне почему то день выводит ту же самую дату что и ввел, и условие где выдает сколько дней в месяце как нибудь поменьше сделать

    Последний раз редактировалось Guagpro; 23.01.2013 в 18:54 .
    Регистрация: 17.11.2010
    Сообщений: 19,042

    EncodeDate(g,n,m) — дата
    EncodeDate(g,n,m)-1 — дата предыдущего дня
    DaysInAMonth — кол-во дней в заданном году и месяце

    Не обратил внимания, что паскаль. Это для дельфей

    Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

    Регистрация: 21.01.2013
    Сообщений: 9

    EncodeDate(g,n,m) — дата
    EncodeDate(g,n,m)-1 — дата предыдущего дня
    DaysInAMonth — кол-во дней в заданном году и месяце

    Не обратил внимания, что паскаль. Это для дельфей

    Регистрация: 21.01.2013
    Сообщений: 9

    Сделал вот так строчка с вызовом процедуры в самом паскале почему то пропускается и выдает мне то же число что я ввел изначально если удаляю строчку mes(g,n,m); ничего не меняется.HELPPP

    var g,n,m:integer; procedure mes(g,n,m:integer); begin if g =1 then if n=1 then begin g:=31;n:=12;m:=m-1; end else begin case n of 3,5,7,8,10,12:g:=31; 4,6,9,11:g:=30; 2:g:=28; end; g:=g-1; end else g:=g-1; end; begin write(‘data’); read(g,n,m); mes(g,n,m); writeln(g,’.’,n,’.’,m); end.
    Регистрация: 16.05.2012
    Сообщений: 3,211

    Мой вариант — без учета високосных лет — как-то так:

    const days:array [1..12] of word=(31,28,31,30,31,30,31,31,30,31,30,31); Procedure PrevDay(var d,m,y: word); begin if (d=1) then begin if (m=1) then begin y:=y-1; m:=12; d:=Days[12]; end else begin m:=m-1; d:=Days[m]; end end else d:=d-1; end; var g,n,m:word; begin ReadLn(n,m,g); WriteLn(n,’.’,m,’.’,g); PrevDay(n,m,g); WriteLn(n,’.’,m,’.’,g); ReadLn; end.

    А в Вашей программе чтобы все заработало — нужна самая малость:

    procedure mes(var g,n,m:integer);

    Источник: www.programmersforum.ru

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru