Bunu algoritmanıza uyarlamayı deneyin. Her ayın gün sayısını gösteren bir dizi mürekkep var. Daha sonra, örneğin, Şubat (ay == 2) 'ye bakarsanız, dizideki 2. elemandan önce tüm değerleri toplamınıza (t) eklersiniz. Ayrıca, tasarımınız şu anda çirkin olduğu için parametreyi ekleyerek yöntemi yeniden yapılandırdım (Aynı şeyi yapan, ancak iki kez yazılan işlevlere sahip olmanız gerekir).
DÜZENLEME: Im, ay onlar girdiklerinde 0 endeksli varsayarak. Eğer değilse, o zaman bu yönteme geçmeden önce ondan 1 çıkarın.
public static int months[] = new int {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
//Note Im assuming error checking has already been done on the data (especially month)
public static int caldate(int year, int month, int day)
{
int t = 0;
t += year * 365;//assume no leap years
for(int i = 0; i < month && i < 12; i++)
{
t += months[i];
}
t += day;
return t;
}