Количество месяцев в календаре не является постоянным? - PullRequest
4 голосов
/ 01 августа 2011

С http://www.coderanch.com/t/381676/java/java/number-months-between-two-given, упомянуто одно сообщение:

public static int monthsBetween(Date minuend, Date subtrahend)  
{  
Calendar cal = Calendar.getInstance();  
// default will be Gregorian in US Locales  
cal.setTime(minuend);  
int minuendMonth =  cal.get(Calendar.MONTH);  
int minuendYear = cal.get(Calendar.YEAR);  
cal.setTime(subtrahend);  
int subtrahendMonth =  cal.get(Calendar.MONTH);  
int subtrahendYear = cal.get(Calendar.YEAR);  

// the following will work okay for Gregorian but will not  
// work correctly in a Calendar where the number of months   
// in a year is not constant  
return ((minuendYear - subtrahendYear) * cal.getMaximum(Calendar.MONTH)) +    
(minuendMonth - subtrahendMonth);  
}  

Правда ли, что количество месяцев в календаре не является постоянным?И почему?

Ответы [ 2 ]

9 голосов
/ 01 августа 2011

Да. В еврейском календаре есть несколько лет по 13 месяцев (точнее 7 из 19).

0 голосов
/ 01 августа 2011

Забавно, что месяц исходит от луны .Лунный календарь обычно синхронизирует дни с фазами луны, так что, например, день 15 любого месяца всегда является днем ​​полнолуния.

Проблема в том, что солнечный год не совсем 12 лунных циклов.Поэтому у лунного календаря должны быть «високосные месяцы».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...