Üç negatif olmayan tamsayılar Verilen y, mve d(bunlardan en az biri pozitif olmalıdır) ve pozitif yıl geçerli bir tarih (yıl, ay ve günü içeren herhangi makul bir biçimde ve hiçbir ek bilgi), çıkış olduğu tarih yyıl, may ve dalındığı tarihten itibaren gün.
Gregoryen takvimi tüm tarihler için kullanılmalıdır (Gregoryen takviminin kabul edilmesinden önceki tarihler bile).
Bir sonraki tarihi hesaplama yöntemi aşağıdaki gibidir:
yYıla eklemAya ekle- Rollovers uygulayarak tarihi normalleştirin (ör.
2018-13-01->2019-01-01) - Gün ayın son gününü geçtiyse, ayın son gününe değiştirin (örn.
2018-02-30->2018-02-28) dGüne ekle- Rollovers uygulayarak tarihi normalleştirin (ör.
2019-01-32->2019-02-01)
Artık yıllar (4 ile bölünebilir, ancak 400 ile bölünemezse 100'e bölünemez) uygun şekilde ele alınmalıdır. Tüm girişler ve çıkışlar dilinizin temsil edilebilir tamsayı aralığında olacaktır.
Test Durumları
Test durumlarda biçiminde sağlanır input => output, inputbir JSON nesnesidir.
{"date":"2018-01-01","add":{"d":1}} => 2018-01-02
{"date":"2018-01-01","add":{"M":1}} => 2018-02-01
{"date":"2018-01-01","add":{"Y":1}} => 2019-01-01
{"date":"2018-01-30","add":{"M":1}} => 2018-02-28
{"date":"2018-01-30","add":{"M":2}} => 2018-03-30
{"date":"2000-02-29","add":{"Y":1}} => 2001-02-28
{"date":"2000-02-29","add":{"Y":4}} => 2004-02-29
{"date":"2000-01-30","add":{"d":2}} => 2000-02-01
{"date":"2018-01-01","add":{"Y":2,"M":3,"d":4}} => 2020-04-05
{"date":"2018-01-01","add":{"Y":5,"M":15,"d":40}} => 2024-05-11
Bu JSFiddle'ı test etmek için kullanabilirsiniz .
Bu kod golfBöylece, en kısa çözüm (her dilde) kazanır.
y, mve d(örn olabilir d2147483000 olmak?)
All inputs and outputs will be within the representable integer range of your language.