2008-12-30 5 views
6

VB6 कोड में VB6 के काम करने के दिन समारोह के समतुल्य, मैं निम्नलिखित है:सी #

dim I as Long 

I = Weekday(Now, vbFriday) 

मैं सी # में बराबर करना चाहते हैं। क्या कोई मदद कर सकता है?

उत्तर

12
public static int Weekday(DateTime dt, DayOfWeek startOfWeek) 
{ 
    return (dt.DayOfWeek - startOfWeek + 7) % 7; 
} 

इस का उपयोग करते हुए कहा जा सकता है:

DateTime dt = DateTime.Now; 
Console.WriteLine(Weekday(dt, DayOfWeek.Friday)); 

ऊपर आउटपुट:

4 

मंगलवार के रूप में शुक्रवार के बाद 4 दिन है।

+3

वीबी 6 (और वीबीएनईटी) फ़ंक्शन का वापसी मूल्य 1 आधारित है। 'वापसी ((dt.DayOfWeek - startOfWeek + 7)% 7) + 1;' – 300hp

2

हाँ, प्रत्येक दिनांक समय मूल्य एक संपत्ति बुलाया सप्ताह का दिन है कि एक ही नाम के एक गणन रिटर्न में बनाया गया है ...

DayOfWeek dow = DateTime.Now.DayOfWeek; 

आप अभिन्न मूल्य चाहते हैं, बस एक के लिए गणन मूल्य डाली पूर्णांक।

int dow = (int)(DateTime.Now.DayOfWeek); 

तुम रविवार के अलावा एक और दिन के लिए इसे फिर से संगठित करना करने के लिए हालांकि, 6 1 से एक निरंतर जोड़ सकते हैं और मॉड 7 करना होगा ...

1

मुझे नहीं लगता कि एक बराबर होती है वीबी के सप्ताहांत समारोह के दो तर्क रूप।

आप इसे इस तरह से उपयोग करके अनुकरण कर सकते हैं;

private static int Weekday(DateTime date, DayOfWeek startDay) 
{ 
    int diff; 
    DayOfWeek dow = date.DayOfWeek; 
    diff = dow - startDay; 
    if (diff < 0) 
    { 
     diff += 7; 
    } 
    return diff; 
} 

फिर तो जैसे यह बुला:

int i = Weekday(DateTime.Now, DayOfWeek.Friday); 

यह रिटर्न आज के लिए 4, के रूप में मंगलवार से शुक्रवार के बाद 4 दिन है।