Определение высокосного года

Автор Олег Ред, 16.03.2015, 16:24

« назад - далее »

Олег Ред

Коллеги, как определить высокосный год или нет, например через ЕСЛИ?
для расчета процентов необходимо вычислить количество дней, но если брать ПРАВСИМВ дает число типа 9058, а хотелось бы год  формата 2015

Олег Ред

Возможное решение:
Как вариант посчитать долю года:
ДОЛЯГОДА(нач_дата; кон_дата; [базис])

но если промежуток времени между годами?

Pelena

Количество дней считается как кон_дата-нач_дата, не вариант?

Олег Ред

#3
Необходимо узнать это был высокосный год или нет, что бы полученное количество дней поделить на 366 или 365 дней

Pelena

=ДЕНЬ((3&ОСТАТ(A1;400)-4000)-1)+337
=365+СУММ((ОСТАТ(A1;{400;4;100})=0)*{1;1;-1})
Взято отсюда (есть и другие варианты)
http://www.excelworld.ru/forum/7-3427-1

_Boroda_

#5
=(1&"/"&A1+1)-(1&"/"&A1)
Даст Вам сразу количество дней в году
или попроще
=(1&-A1-1)-(1&-A1)
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

vikttur

Истина=год високосный
=МЕСЯЦ(ДАТА(2015;2;28)+1)=2

gling

Или так
Цитироватьформата 2015
=ЕСЛИ(ОСТАТ(A1;4);365;366)
mail: vovik100661@gmail.com;
ЯД-41001506838083.

MCH

Цитата: gling от 16.03.2015, 23:13
Или так
2100, 2200, 2300 года - не високосные

Варианты:
если в A1 - год (2015 или 2016), то количество дней в году можно посчитать по формуле:
=ДЕНЬ((3&-A1)-1)+337
Более правильно конечно же:
=ДЕНЬ(ДАТА(A1;3;))+337

если в A1 - дата, то вместо A1 в вышеуказанных формулах нужно записать ГОД(A1)

zs

A1=2012 B1=искомый год
=ЕСЛИ(ОСТАТ((B1-$A$1)/4;1)=0;"Високосный";"Нет")

MCH

Zs, зачем из года нужно вычитать 2012?
Ваша формула по смыслу ничем не отличается от формулы gling.
Она также не правильно определяет високосность 2100, 2200, 2300 годов

Для григорианского календаря год является високосным в двух случаях: либо он кратен 4, но при этом не кратен 100, либо кратен 400. Год не является високосным, если он не кратен 4, либо он кратен 100, но при этом не кратен 400.

Корректные формулы и ссылку на подобную тему приводила Pelena в 4м сообщении

gling

Согласен, предложенная мной формула определяет высокосный год не правильно, но думаю что ей можно пользоваться еще лет 85.
Цитироватьузнать это был высокосный
mail: vovik100661@gmail.com;
ЯД-41001506838083.

zs

=ЕСЛИ(ОСТАТ((B1-$A$1)/4;1)=0;ЕСЛИ(ОСТАТ(B1/100;1)>0;"Високосный";"Нет"))

MCH

zs, у Вас 2000 год получается не високосный, а он был високосным

zs

=ЕСЛИ(ОСТАТ((B1-$A$1)/4;1)=0;ЕСЛИ(ИЛИ(ОСТАТ(B1/100;1)>0;ОСТАТ(B1/400;1)=0);"Високосный";"Нет"))