2011-09-07 13 views
2

在我的系統中,我們在所有月份的第10天,第20天和第30天進行付款。所以,如果我在9月5日賣東西,我應該在9月10日付款。如果我在8月31日賣東西,我應該在9月10日支付,等等。如何從3個預定選項中選擇最佳付款日期?

你對算法有什麼建議嗎?

+1

如果你在2月25日賣東西怎麼辦? –

+1

你從未給我們理由懷疑你的算法。如果您每月限制在3天內,我沒有發現任何問題。 – 2011-09-07 18:19:43

+0

如果您在第10天賣出,您會在第10天或第20天獲得支付? – tokland

回答

1

您的規格不完整,所以邊緣案例不清楚。無論如何,你可以玩這個:

date = Date.new(2010, 1, 4) # example input 

day = ((date.day/10) + 1) * 10 
if day > Time.days_in_month(date.month, date.year) 
    Date.new(date.year, date.month, 10) + 1.month 
else 
    Date.new(date.year, date.month, day) 
end 
+0

我認爲你的意思是在「if」裏面設置10天而不是1天? –

+0

@Lars:哦,是的,我認爲這是在1/10/20/30天。更新中... – tokland